如何使用find来复制和删除目录?

时间:2015-01-18 18:07:19

标签: shell find

我正在尝试查找比某些日期早的文件,并且我想将文件复制到特定文件夹,并在单个命令中从源目录中删除文件。

find . -type d -mtime +600 -exec cp -rf '{}' destination folder  \; -exec rm -rf '{}' \;

错误:

find: ./one: No such file or directory
find: ./two: No such file or directory
find: ./three: No such file or directory

如何解决错误?

2 个答案:

答案 0 :(得分:0)

尝试类似:

 find . -type d -mtime -600 -exec cp -rf '{}' destination_folder \; -delete

或者,您甚至可以使用

find . -type d -mtime -600 -print0 -exec cp -rf '{}' destination_folder \; | xargs -0 rm -rf

答案 1 :(得分:0)

我不太确定你为什么要cprm,而不是更快mv

但是,你可以在很大程度上忽略该错误,find预处理树的一部分,如果你想强制它忽略删除的子目录add -prune(你可能应该引用{{1} }})

destination dir

find . -type d -mtime +600 -exec cp -rf '{}' 'destination folder' \; -exec rm -rf '{}' \; -prune