/test文件夹中有300000多个文件,其名称很长(超过30个字符),标题与"TEST_*“相同,我想将所有文件压缩到一个.zip包中,并从/test文件中删除它们。因此,我使用了如下命令显示:
find ./test -name "TEST_\*" -mtime +1 | zip -m /home/TESTbac.zip -@;但是在运行shell脚本后,/test文件夹中的文件仍然存在
我想问的是,为什么在运行脚本之后文件仍然存在?我怎样才能解决这个问题?
发布于 2016-03-18 02:55:09
您不需要将结果传递到zip命令。find有一个-exec参数,它将对每个匹配路径执行给定的命令。我怀疑管道过程中有什么东西导致-m无法按预期工作。
相反,试着这样做:
find ./test -name "TEST_*" -exec zip -m /home/TESTbac.zip '{}' ';'注意:引号表示-exec命令的结尾。它被引用,因此命令行可以区分-exec命令的结尾和整个命令本身的结尾。同时,用匹配路径结果自动用find代替{}。
发布于 2020-06-03 07:23:53
zip -rm files.zip *.xml这工作得很完美
发布于 2016-03-18 04:33:44
它仍然存在,因为没有任何东西让它被删除。
sudo /test <- -您的目录位置。
如果它给您的印象是,它中仍然有文件,而且您仍然希望它消失,那么向它添加一个-rf标志。隐居,意思是所有在树下的力量--照我说的去做。
数独/test -rf
在你这样做之前,只要仔细检查每件事都是你想要的。
https://stackoverflow.com/questions/36075284
复制相似问题