/ test文件夹中有超过300000个文件,其中包含一个长名称(超过30个字符)和相同的标题,如“TEST_ *”我想将所有文件压缩成.zip包并从/ test中删除它们文件。 所以我使用命令show如下:
find ./test -name "TEST_\*" -mtime +1 | zip -m /home/TESTbac.zip -@;
但运行shell脚本
后,/ test文件夹中的文件仍然存在我想问的是为什么运行脚本后文件仍然存在? 我该如何解决这个问题?
答案 0 :(得分:2)
您不需要将结果传递给zip
命令。 find
具有-exec
参数,该参数将为每个匹配路径执行给定命令。我怀疑管道流程中的某些内容导致-m
无法正常工作。
而是试试这个:
find ./test -name "TEST_*" -exec zip -m /home/TESTbac.zip '{}' ';'
注意:引用的分号表示-exec
命令的结尾。它被引用,因此命令行可以区分-exec
命令的结尾与整个命令本身的结尾。同时,{}会被find
自动替换为匹配的路径结果。
答案 1 :(得分:0)
zip -rm files.zip *.xml
这很好用
答案 2 :(得分:-1)
它仍然存在,因为没有人告诉它被删除。
sudo rmdir / test< - 您的目录位置。
如果它让你知道其中还有文件仍然存在,你仍然希望它不再添加-rf标志。 RECLUSIVE,意思是它下面的树和FORCE中的所有 - 只是做我告诉你的。
sudo rmdir / test -rf
在你这样做之前,只需仔细检查一切就是你想要的。