Unix 忽略'中的重复文件名;查找';命令
我试图将所有HTML文件压缩到指定目录下,忽略文件位置,但我的命令有一个错误,我不知道如何修复。它不会像我需要的那样忽略重复的文件名 命令:Unix 忽略'中的重复文件名;查找';命令,unix,command-line,Unix,Command Line,我试图将所有HTML文件压缩到指定目录下,忽略文件位置,但我的命令有一个错误,我不知道如何修复。它不会像我需要的那样忽略重复的文件名 命令: find /home/ -type f -name "*.html" | zip -j all-html-files -@ 错误: zip error: Invalid command arguments (cannot repeat names in zip file) 该错误的原因(如果有帮助) 下面是一个使用awk的解决方案: find /hom
find /home/ -type f -name "*.html" | zip -j all-html-files -@
错误:
zip error: Invalid command arguments (cannot repeat names in zip file)
该错误的原因(如果有帮助)
下面是一个使用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文件中。如果-j导致问题,为什么不先在zip目录中放入cd,如: cd/tmp/dir
zip-r-9-v/tmp/bkp.zip。为什么在获得结束投票时删除答案,然后再次发布?那些结束投票建议你加入,因为它比这里更合适。另外,我建议您在find命令后使用
|sort-u
来解决此问题。sort-u
在这里不起作用,因为文件有不同的路径。谢谢@dogbane,我知道有人会帮上忙的!你说得对,排序-你没有工作。
find /home/ -type f -name "*.html" | awk -F/ '{a[$NF]=$0}END{for(i in a)print a[i]}' | zip -j all-html-files -@