存档目录及其子目录在 x 天内未修改

存档目录及其子目录在 x 天内未修改

一段时间以来,我一直在寻找一种归档文件服务器的方法,但尚未找到可行的解决方案。目标是在目录及其子目录中搜索最近 x 天内未修改的文件。当在父目录或其子目录中找不到文件时,应存档整个父目录(或至少打印到屏幕)。任何建议表示赞赏!你好,约翰

答案1

一个简单的答案是使用 find 命令的“newer”参数,它可以查找比另一个文件更新的任何文件。因为我们想要的实际上是相反的,所以我们需要一个脚本来计算已修改的文件(即更新的文件),并在没有找到时打印目录的名称。

DATE=`date -d "-30 days"` #Calculate a date 30 days before today
touch -d "$DATE" /tmp/newer #Create a temp file with the calculated date

#Assume we're passing in a list of directories
#We could just as easily find any directory below a certain point without
#newer files by setting DIR=`find /what/ever/directory -type d`

for DIR in $* 
do
    MOD=`find "$DIR" -newer /tmp/newer | wc -l` #Count the number of newer files
    if [ "$MOD" -eq 0 ] 
    then
        echo $DIR   # Nothing new in 30 days - Print the name of the Dir
    fi
done

相关内容