将文件移动到比日期更早的另一个目录

Modified on: Wed, 28 Aug 2019 22:40:02 +0800

我正在寻找一种解决方案来移动今天年龄较大的文件。我的日志分区已满,但我无法删除它们。它们需要很长时间。无论如何,我想出的一个解决方案是:

find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \;

这会有用吗?因为“ -mtime 365 ”而要求将今年年龄较大的文件移动到新位置?

谢谢!

作者:mYzk

最佳答案

你几乎是对的。 -mtime 365将是365天之前的所有文件。你想要365天或更长的那些,这意味着在数字之前添加+,如-mtime +365

您可能还对-maxdepth 1标志感兴趣,这会阻止您移动子目录中的项目。

如果您想确保只移动文件而不是目录,请在行中添加-type f

在该行的末尾,我们添加\;,以便find知道我们正在执行的命令的结束。

所以该行应该是:

find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \;

为了安全起见,首先只需要执行ls -l而不是mv - 这样你就可以提前检查你是否正在获得你想要的文件,然后再用mv重新运行它,就像这样:

find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \;
作者:davey,Jenny D

相关问答

添加新评论