如何tar将原始文件夹的文件(已压缩)与原始文件夹进行比较?
首先,我使用了创建存档文件
tar -kzcvf directory_name.zip directory_name
Run Code Online (Sandbox Code Playgroud)
然后我尝试比较使用
tar -diff -vf directory_name.zip directory_name
Run Code Online (Sandbox Code Playgroud)
但它没有用.
zze*_*roo 35
--compare (-d) 对此更方便.
tar --compare --file=archive-file.tar
Run Code Online (Sandbox Code Playgroud)
如果archive-file.tar位于创建目录中,则可以正常工作.要将archive-file.tar与远程目标进行比较(例如,如果已将archive-file.tar移动到/ some/where /),请使用以下-C参数:
tar --compare --file=archive-file.tar -C /some/where/
Run Code Online (Sandbox Code Playgroud)
如果你想看到焦油工作,使用-v不-v只是错误(缺少文件/文件夹)的报告.
Tipp:这也适用于压缩的tar.bz/ tar.gz档案.
应该是--diff
试试这个(没有最后一个目录名称):
tar --diff -vf directory_name.zip
Run Code Online (Sandbox Code Playgroud)
问题是 --diff 命令只查找 tar 文件和文件夹之间现有文件的差异。因此,如果将新文件添加到文件夹中,则 diff 命令不会报告此情况。
要忽略部分或全部元数据(用户、时间、权限)的差异,您可以将结果通过管道传输到awk:
tar --compare --file=archive-file.tar -C /some/where/ | awk '!/Mode/ && !/Uid/ && !/Gid/ && !/time/'
Run Code Online (Sandbox Code Playgroud)
这应该只输出 tar 和目录之间的真正差异/some/where/
| 归档时间: |
|
| 查看次数: |
19619 次 |
| 最近记录: |