仅打印超过 31 个文件的目录

Mon*_*yad 1 shell find

我正在使用这个脚本来计算我的目录和子目录中的文件:

for i in $(find . -type d) ; do 
  printf "$i %s\t" ;
  ( find $i -type f | wc -l ) ; 
done
Run Code Online (Sandbox Code Playgroud)

这个脚本工作正常。我真正想要它做的是只打印包含超过 31 个文件的目录。

mur*_*uru 5

尝试:

find . -type d -exec sh -c '[ $(find "$1" -type f | wc -l) -gt 31 ]' _ {} \; -print
Run Code Online (Sandbox Code Playgroud)

我建议-maxdepth对 second使用限制find,否则您可能会发现一些令人惊讶的结果。该命令不适用于包含换行符的名称。