【问题标题】:Compare ZIP file with dir with shell command [closed]将 ZIP 文件与 dir 与 shell 命令进行比较 [关闭]
【发布时间】:2023-04-04 13:40:01
【问题描述】:

我从 infozip.org 用 zip 压缩了很多文件。 如何确保 zip 文件包含原始文件中的所有文件。或者是否有一个 GUI 工具来处理它。

【问题讨论】:

标签: linux shell zip


【解决方案1】:

你可以安装一个名为unzip的命令行工具,然后运行

$unzip -l yourzipfile.zip

yourzipfile.zip 中包含的文件将被列出。

========

要自动验证文件,您可以按照以下步骤操作。

如果压缩成yourzipfile.zip的文件在dir1,可以先将yourzipfile.zip解压成dir2,然后运行比较dir1dir2中的文件

$ diff --brief -r dir1/ dir2/

【讨论】:

  • 我可以使用 diff 与 dir 和 unzip -l 的输出来检查 zip 文件的内容是否相同。因为文件列表很长。
  • 我刚刚找到了 zip -t yourzipfile.zip 的解决方案。 -t 测试 yourzipfile.zip。
【解决方案2】:

我自己尝试过这样做,您可以将一些东西串在一起来做到这一点,而无需解压缩到目录

diff <(unzip -l foo.zip | cut -d':' -f2 | cut -d' ' -f4-100 | sed 's/\/$//' | sort) <(find somedir/ | sort)

基本分类是:

使用 diff 比较 2 个命令的输出流

diff <(command1) <(command2)

使用 unzip -l,并处理输出。我使用 2 次剪切来获取文件名,删除目录上的尾随 /,最后排序:

unzip -l foo.zip | cut -d':' -f2 | cut -d' ' -f4-100 | sed 's/\/$//' | sort

对于目录列表,简单的查找和排序

find somedir/ | sort

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2016-02-05
    相关资源
    最近更新 更多