【发布时间】:2013-04-28 12:13:34
【问题描述】:
下面是一个简单的脚本,它搜索超过 30 天的文件,然后返回文件数或零。
如果可能,我希望它执行以下操作:
- 如果发现任何超过 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
【问题讨论】:
标签: linux macos shell unix find