在我的unix shell脚本中,我有一个for循环并通过目录中的文件循环,我想检查一个文件的修改日期是否大于某些天数,比如10天并做一些处理。 在这方面的任何帮助都非常感谢。
答案 0 :(得分:5)
find命令有一个内置的测试:
find <yourdir> -type f -mtime +10 -exec yourproc {} \;
这将在超过10天的<yourdir>
中的每个文件上运行“yourproc matching_filename”。
-ctime测试的工作方式类似,使用inode更改时间而不是 修改时间。
答案 1 :(得分:3)
这可以通过多种方式集成到脚本中。一个人:
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