一段时间以来,我一直在寻找一种归档文件服务器的方法,但尚未找到可行的解决方案。目标是在目录及其子目录中搜索最近 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