在unix中检查文件的日期

时间:2009-10-08 23:55:07

标签: unix date

在我的unix shell脚本中,我有一个for循环并通过目录中的文件循环,我想检查一个文件的修改日期是否大于某些天数,比如10天并做一些处理。 在这方面的任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:5)

find命令有一个内置的测试:

find <yourdir> -type f -mtime +10 -exec yourproc {} \;

这将在超过10天的<yourdir>中的每个文件上运行“yourproc matching_filename”。

-ctime测试的工作方式类似,使用inode更改时间而不是 修改时间。

答案 1 :(得分:3)

找到。 -mtime +10

这可以通过多种方式集成到脚本中。一个人:

isOlder () {
    [ "`find $1 -mtime +10`" == "$1" ]
    return $?
}

ls | while read fname; do
  if isOlder "$fname"; then
    echo $fname is older 
  else
    echo $fname is not older
  fi
done

我列出了上面的内容,因为它听起来像你主要想要一个测试,并正在做其他处理。 OTOH,如果你真的只想要旧文件:

$ find . -mtime +10 | while read fname; do
>   echo $fname
> done