0

我正在尝试将所有 HTML 文件压缩到指定目录下,忽略文件位置,但我的命令出现错误,我不知道如何修复。它不会像我需要的那样忽略重复的文件名。

命令:

find /home/ -type f -name "*.html" | zip -j all-html-files -@

错误:

zip error: Invalid command arguments (cannot repeat names in zip file)

该错误的原因(如果这有帮助)

zip warning:   first full name: /home/company/press/managed-saas-service.html

zip warning:  second full name: /home/company/press/2/managed-saas-service.html

zip warning: name in zip file repeated:managed-saas-service.html
4

2 回答 2

2

这是一个解决方案,使用awk

find /home/ -type f -name "*.html" | awk -F/ '{a[$NF]=$0}END{for(i in a)print a[i]}' | zip -j all-html-files -@

如果找到多个同名文件,则最后找到的文件将存储在 zip 文件中。

于 2013-07-01T13:27:36.460 回答
0

如果 -j 导致问题,为什么不首先在 zip 目录中使用 cd ,例如:

cd /tmp/dir zip -r -9 -v /tmp/bkp.zip。

于 2014-04-16T18:27:15.873 回答