tar アーカイブはしばらくしてから再開されます。

tar アーカイブはしばらくしてから再開されます。

200,000を超えるファイルを含むフォルダがあります。特定の名前で始まるファイルだけを保持したい(ファイル名が非常に大きい)。はいsudo find /path/to/_Logs -name "RATE*" -print0 | xargs -0 tar -czf logs_rate.tgz

ただし、時には次のメッセージが表示されます。tar: メンバー名から先行する "/" を削除そして保存はゼロにリセットされ、再開されます。その過程を終えてから、合計22,000個のファイルのうち25個程度のファイルしか残っていませんでした。私は何を逃したか、何が間違っていますか?

答え1

コメントからすでに分かるように、何度もtar実行するだけですxargs。この問題を解決する最も明白な方法は、アーカイブを最初から再作成するのではなく、ファイルをアーカイブに追加することです。

 sudo find /path/to/_Logs -name "RATE*" -print0 | xargs -0 tar -rf logs_rate.tar

その後、圧縮します。

リーダーシップに関する言葉は/単なる警告です。

答え2

解決策が見つかりました。長い名前と大きなコンテンツをバイパスするには、コマンドを2つの部分に分割します。

  1. sudo find /path/to/_Logs -name "RATE*" > test1.txt
  2. tar -czvT test1.txt -f logs.tgz

答え3

tarでxargsを使用しないでください。これを行う必要はありません。

Gnu / tar(そして他のtarにもあると思います)には、サイドファイルからファイル名を無制限に読むことができるオプション-T(長い形式:)があります。--files-from(また、を使用してstdin経由で送信することもできます-T -。)

この--nullオプションを使用すると、-Tリストに次のようなxargsnull で終わる文字列 (同じ理由で) を含めることができます。

-Tいくつかのオプションがあります。で始まるパス名に注意してください--T-C

関連情報