Tar递归与原始文件夹比较

卡利兹:

我有一个.tgz用制成文件tar cvzf tartest.tgz tester/*,如果我用该tar --list -f tartest.tgz文件列出tar ,则我具有以下结构

 tester/2017-08-02_131404.png
 tester/cfg.pdf
 tester/tests/
 tester/tests/1.png
 tester/tests/2.png
 tester/tests/3.png
 tester/tests/4.png
 tester/tests/5.png

如果我使用来比较tar和原始文件夹tar -df tartest.tgz tester/*,一切正常,没有问题,没有错误

如果我tester文件夹中添加文件20171006_183137.png并重试,则会出现错误,如预期的那样:

 tar: tester/20171006_183137.png: Not found in archive
 tar: Exiting with failure status due to previous errors

如果我tester / tests文件夹中添加文件20171006_183137.png并重试,则不会出现错误并显示空白。

如果我在上一次测试期间添加了-v选项,那么我只会得到tar中的文件列表。

有没有一种方法可以将tar与原始文件夹和子文件夹进行递归比较?

继续:

根据此站点tar表现正常。

您应该再次注意,尽管--compare-d)确实会导致tar报告档案文件中不存在的档案中的文件,但tar会忽略活动文件系统中档案中不存在的文件。

您要获取tar -df tartest.tgz tester/*错误确实是错误(!),而不是» 存档和目录不同 «之类的消息tar不知道如何处理不在存档中的文件。

如果您还想比较另一种方法,则可以使用此答案中描述的方法(装入或解压缩归档文件并diff -r针对原始目录使用)。

如果您只对文件的存在而不是内容,访问日期等感兴趣,则可以列出存档和原始目录中的文件名,并将它们与diff

diff <(tar -tf tartest.tgz | sort) <(find tester/ | sort)

仅当其中没有带有换行符的文件名时,该命令才有效。
使用diff -ycomm命令获得更易读的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章