私はシェルコマンドを使用してバイナリを効率的にマージしたいと思い、次の古典的な方法をすばやく見つけました。
cat file1 file2 > file3
悪くはありませんが:
- 非常に遅い。 IOアクセスが遅い。
- 追加スペースが必要です。ファイルをコピーしたくありません。ただ接続してください。
ファイルシステムは、ファイルの断片化を処理するのに適しています。このメカニズムを使用してファイルをマージできませんか?
ベストアンサー1
次のことができます。
cat file2 file3 [...] filen >> file1
これによりfile2
、、、file3
...がfilen
in-placeの末尾に連結されます。file1
この>>
演算子はシェルに書き込むように指示します。ファイルの終わり。
「ファイル断片化処理」のためにファイルシステムを活用しようとしています。残念ながら、これを行う普遍的な方法はありません。これは、「ファイルシステム」がディスク上のファイルシステムよりも一般的であるためです。たとえば、次のようになります。ネットワークファイルシステム、ヒューズ、そしてあらゆる種類のリソースを公開できる他の多くのメカニズム(ブロックデバイスハードディスクなど)をファイルシステム階層として使用します。ブロックデバイスベースのファイルシステムの場合でも、これを行うための標準的なメカニズムはなく、実装固有のメカニズムもわかりません。