我正在尝试查找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命令的任何选项。
由于
答案 0 :(得分:2)
仅在find
命令中无法执行此操作。您可以编写重命名脚本并使用它来代替mv
:
find . -type f -mtime +30 -exec appenddate.sh {} \;
appenddate.sh就像:
mv $1 $1_`date +%Y%m%d`