我需要一种方法来查找服务器上包含多个文件(例如 1000+)的所有目录。我在许多大型服务器上工作,有时会找到包含数百万个小日志文件的目录。我需要一种方法来找到这些目录。
我正在考虑编写完整目录列表的脚本,然后执行... ll | wc -l ...但认为可能有更好/更快的方法来做到这一点?
理想情况下,我将此脚本设置为在 crontab 中运行,每周运行一次。
干杯,斯图
我会比较喜欢:
[[ `ls -1 | wc -l` -gt 1000 ]] && echo `pwd`
还有一个循环......但没有一个循环:
ls -1R|awk -F "\n" 'BEGIN {RS="\\n\\n"} NF>1000 {print $1, NF-1}'
编辑:
由于awk
无法处理那么大的记录(超过 3000 字节),我会选择:
for dirz in `find . -type d -print` ; do
[[ `ls -1 $dirz | wc -l` -gt 1000 ]] && echo $dirz
done
高温高压
我会做一个像这样的两阶段方法(未经测试):
find / -type d -exec sh -c "find {} -depth 1 -type f -print | wc -l" \; | while read F N
do
[ $N -gt 1000 ] && echo $F $N
done