63

GNU tar はアーカイブに多くのファイルを追加し、追加されるたびに各ファイルを削除できますか?

This is useful when there is not enough disk space to hold both the entire tar archive and the original files - and therefore it is not possible to simply manually delete the files after creating an archive in the usual way.

4

4 に答える 4

93

GNU tar では、オプション --remove-filesを使用します。

于 2012-05-28T08:50:46.967 に答える
5

私にはタスクがありました-ファイルをアーカイブしてから、GNUオプションなしで「tar」をインストールしたOSに削除します。

方法:

「xargs」を使用する

ファイルを含むディレクトリがあるとします。
1 週間かけてすべてのファイルを tar に移動し、削除する必要があります。
1 つのアーカイブ (arc.tar) を作成し、それにファイルを追加しました。(試行ごとに新しいアーカイブを作成できます)

解決:

find ./ -mtime +7 | xargs -I % sh -c 'tar -rf arc.tar % && rm -f %'
于 2013-11-28T19:45:30.420 に答える
0

最初に解凍せずに bzip2 アーカイブにファイルを追加できるかどうかはわかりません。ただし、ここに私の頭に浮かんだ1つの解決策があります(疑似アルゴリズムを提供します):

1. For each [file] in [all small files]
    1.1 compress [file] into [file].bz2
    1.2 (optionally verify the process in some way)
    1.3 delete [file]
2. For each [bzfile] in [all bzip files from step 1]
    2.1 append to tar (tar rvf compressedfiles.tar [bzfile]
    2.2 (optionally verify the process in some way)
    2.3 delete [bzfile]

これで、すべてのファイルを個別に bzip2:ed ファイルで含む tar ファイルが作成されます。問題は、bzip2 が個々のファイルにどれだけのオーバーヘッドを追加するかです。これはテストする必要があります。

于 2012-05-28T09:03:05.417 に答える