我正在寻找一个解决scheme来移动比今天更早的文件。 我的日志分区已满,但无法删除它们。 他们需要很长的时间。 无论如何,我想出了一个解决scheme是:
find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \;
这会工作吗? 由于“ -timetime 365 ”的问题,这会把今年的文件从今天移到新的位置吗?
谢谢!
你几乎是对的。 -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 {} \;
使用上述解决scheme时要小心,我使用它们,并最终移动所有子文件夹中的所有文件!
该命令移动源目录下的/ source目录下的所有文件和所有子文件夹:
find /sourcedirectory -mtime +365 -exec mv "{}" /destination/directory/ \;
相反,只对/ sourcedirectory中的文件使用选项-maxdepth 1
find /sourcedirectory -maxdepth 1 -mtime +365 -exec mv "{}" /destination/directory/ \;
您可以使用此命令,并指定只查找文件,而不查找目录,并且文件大于一年
find /sourcedirectory -type f -mtime +365 -exec mv "{}" /destination/directory/ \;
如果经常访问文件,可以使用下面的命令
find /sourcedirectory -type f -atime +365 -exec mv -t /destinationdirectory {} +;