BASH脚本。如何在指定的修改日期之前触摸每个文件

时间:2013-02-28 11:45:12

标签: bash find touch

所以我希望能够进入一个文件夹并更新其中每个文件的“最后修改”数据。

到目前为止,我认为我应该使用:

touch --date "2012-12-31" /tmp/date
find /filestotouch -type f -not -newer /tmp/date

这应该列出所有匹配的文件。现在,我是否需要进行循环,或者是否有一种简单的方法可以将这些数据传递给它并让它们全部完成?

2 个答案:

答案 0 :(得分:2)

有两种选择:

  1. 添加选项-exec:... -not -newer /tmp/date -exec touch "{}" \;
  2. 管道到xargs:... -not -newer /tmp/date -print0 | xargs -0 touch

答案 1 :(得分:1)

尝试使用find命令:

find /filestotouch -iname "*.type" -mtime +60 -exec touch "{}" \;

以上命令将提取60天后修改过的所有文件。