使用find命令查找文件并将其存档并附加日期 - 需要一个查找命令

时间:2012-01-13 00:53:49

标签: unix find

我正在尝试查找30天前创建/修改的文件并将其归档。为此我使用Unix Find命令。我可以通过下面的命令行来实现这个要求。

 find . -type f -mtime +30  -exec basename {} \; | xargs -I file_name echo mv /home/Cyrup/chip/arc_poc/file_name /home/Cyrup/chip/arc_poc/arc/file_name_$(date +%Y%m%d) | ksh

但是我想使用我无法实现的find命令来执行此任务。我试着在下面使用:

find . -type f -mtime +30 -exec mv {} /home/Cyrup/chip/arc_poc/arc/{}_`date +%Y%m%d` \;

但它没有成功。如果{}充当由find命令标识的所有文件的占位符。那么我在通过用日期重命名文件来移动文件来存档Dir的任何地方都会出错?

-mtime也适用于文件的修改时间。有没有办法我们可以根据文件的创建时间找到文件。据我所知,我们没有find命令的任何选项。

由于

1 个答案:

答案 0 :(得分:2)

仅在find命令中无法执行此操作。您可以编写重命名脚本并使用它来代替mv

find . -type f -mtime +30 -exec appenddate.sh {} \;

appenddate.sh就像:

mv $1 $1_`date +%Y%m%d`