【问题标题】:Using find command to find files and archive them with date appended- Need a single find command使用 find 命令查找文件并将其归档并附加日期 - 需要一个 find 命令
【发布时间】:2012-01-13 10:45:17
【问题描述】:

我正在尝试查找 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` \;

但它不工作。这里 if {} 充当 find 命令识别的所有文件的占位符。那么我在通过使用日期重命名将文件移动到存档目录时是否会出错?..

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

谢谢

【问题讨论】:

标签: unix find


【解决方案1】:

仅在find 命令中无法做到这一点。您也许可以编写一个重命名脚本并使用它来代替 mv:

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

appenddate.sh 类似于:

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

【讨论】:

    猜你喜欢
    • 2021-11-22
    • 2014-09-24
    • 2018-04-14
    • 2015-02-17
    • 2012-02-11
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多