これは、Linux での作業に関する一般的なソフトウェア エンジニアリングの問題です。ソースコード、主にスクリプトがあるとします。テキスト データを操作し、テキスト ファイルを入出力として受け取ります。作業中のディレクトリの変更を最小限に抑えながら、srcコードとデータを適切に分離する方法を考えています。2 つの可能性があります。
コードとデータを一緒に混ぜます。このようにして、ディレクトリの移行が最小限に抑えられ、作業中にファイルへのパスを入力する必要がなくなります。ほとんどの場合、次のように呼び出します。
script1 data-in data-out # call script vi data-out # view result
問題は、コード ファイルとデータ ファイルの数が増えるにつれて、コード ファイルとデータ ファイルの両方の長いリストに直面すると、見た目が煩雑になることです。
コードとデータを 2 つのフォルダー ("src" と "data" など) に分けます。「src」フォルダーにいる場合、上記のアクションを実行するには次が必要です。
script1 ../data/data-in ../data/data-out # call script vi ../data/data-out or cd data; vi data-out # view result
親ディレクトリ「../data」の余分な入力は、特にスクリプトの簡単なテストがたくさんある場合に面倒です。
データ フォルダーで、逆の方法で行うことをお勧めします。しかし、同様に、../src/script1 を呼び出す必要があります。ここでも、接頭辞「../src」を入力する手間がかかります。ええ、「src」を PATH に追加できます。しかし、親子ディレクトリ間でスクリプト間に依存関係がある場合はどうなるでしょうか? たとえば、「src」の下に「subsrc/script2」があり、script1 内で「./subsrc/script2 ...」を呼び出すとします。次に、「data」フォルダーの下に「subsrc」フォルダーがないため、「data」フォルダーで script1 を呼び出すと、エラーがスローされます。
コードとデータを適切に分離し、ディレクトリの変更を最小限に抑えることは、相反する要件のようです。何か提案はありますか?ありがとう。