如何递归复制所有不超过 1 天的文件?
我第一次尝试
find . -amin -1440 | xargs cp /dest
但它不起作用,因为给出的项目xargs
应该放置在/dest
参数之前。
答案1
您可以使用-t
GNU 的选项cp
:
-t, --target-directory=DIRECTORY
copy all SOURCE arguments into DIRECTORY
您还应该使用find
's -print0
,xargs -0
否则,这对于包含空格或其他奇怪字符的文件名将失败:
find . -amin -1440 -print0 | xargs -O cp -t /dest
更好的方法可能是使用find
自身并xargs
完全避免:
find . -amin -1440 -exec cp -t /dest {} +
最后,既然你提到了“文件”,你可能想跳过目录、符号链接和其他奇怪的东西,并告诉find
只查找常规文件:
find . -type f -amin -1440 -exec cp -t /dest {} +