下面是一个简单的脚本,用于搜索30天以前的文件,然后返回文件数或ZERO。Unix查找脚本功能改进
我想它做到以下几点,如果可能的话:
从环- 退出,如果发现任何超过30天,并移动到下一行list.dat
这样,由于我们找到了我们正在寻找的内容,因此它不需要通过某人的目录进一步递归,因为其中一些目录很大,而且我们使用的是老化的SAN,所以它是冰河的。
我们基本上试图生成一个已经闲置超过30天的“家”文件夹的报告,但无法通过除此之外的任何其他方式提取此信息。
我不相信有任何的方式来捕捉的“查找”退出状态,使这个变得更容易...
或者,如果任何人有如何做到这一点不同的建议,我所有的耳朵。
任何建议,想法或帮助非常感谢!
丹
#!/bin/sh
PATH=/bin:/usr/bin:/usr/sbin export PATH
SOURCEDIR=/Volumes/UserHomes/
while IFS= read -r line
do
COUNT=$(find $SOURCEDIR/$line -type f -mtime -30 | wc -l)
if [ "$COUNT" -eq 0 ]; then
echo $line ZERO
else
echo $line $COUNT files found
fi
done < $SRCLIST
感谢您的建议,但我不认为发现有一个--quit选项 - 至少它不是在手册页,它不工作。除非我有这个错误:if [-n“$(find $ {SOURCEDIR}/$ {line} -type f -mtime -30 -quit)”];然后 – Dan 2013-05-04 15:43:16
我已经更新了我的答案,以确保它更加防弹。它确实包含了一个被忽略的细节:用'-quit',你需要'-print'。 – 9000 2013-05-04 19:15:19
@Doug BSD查找似乎没有--quit,但这真的是你想要的。如果它是一个选项,你可以通过homebrew在OSX上安装GNU版本。 – 2013-05-04 19:29:29