如何递归复制所有不超过 1 天的文件?

如何递归复制所有不超过 1 天的文件?

如何递归复制所有不超过 1 天的文件?

我第一次尝试

find . -amin -1440 | xargs cp /dest

但它不起作用,因为给出的项目xargs应该放置在/dest参数之前。

答案1

您可以使用-tGNU 的选项cp

   -t, --target-directory=DIRECTORY
          copy all SOURCE arguments into DIRECTORY

您还应该使用find's -print0xargs -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 {} +

相关内容