tar 存档在一段时间后重新启动

tar 存档在一段时间后重新启动

我有一个包含超过 200k 个文件的文件夹。我只想归档以某个名称开头的文件(文件名非常大)。例子sudo find /path/to/_Logs -name "RATE*" -print0 | xargs -0 tar -czf logs_rate.tgz

然而,我时不时会收到这样的消息:tar:从成员名称中删除前导“/”并且存档重置为 0 并重新开始。在该过程结束时,我总共 22000 个文件中只有大约 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

不要将 xargs 与 tar 一起使用。没有必要这样做。

Gnu/tar(我相信其他 tars)有一个选项-T(长格式--files-from:)从副文件中读取无限数量的文件名。 (您还可以使用 来通过 stdin 发送它们-T -。)

可以使用该--null选项,以便-T列表可以包含以 null 结尾的字符串,就像xargs(并且出于相同的原因)。

-T可以使用多个选项。请注意,以 开头的路径名-仍然是一个问题:该-T选项仅仅是命令行上名称列表的缩写:它可以包含其他选项,例如-C.

相关内容