我必须编写一个脚本,如果满足条件,(例如:文件夹以'A'开头)然后以递归方式打开满足条件的每个目录,并对内部文件执行wc
。如果目录中有超过50个文件,请使用wc
回显目录名称。
答案 0 :(得分:1)
看起来你想要找到所有以A开头的目录,其中包含超过50个文件。
以下命令列出满足字符串名称条件的所有目录(如果其中包含50个以上的文件)
NAME="A*"
find . -type d -name "$NAME" -exec sh -c 'echo $(ls "{}" |wc -l) "{}"' \; | awk 'int($1)>=50'
答案 1 :(得分:0)
此脚本应该适合您:
PREFIX="A"
while read dir; do
numDir=$(d=( $dir*/ .$dir/*/ ) && echo "${#d[@]}")
numFileDir=$(a=( $dir/* $dir/.* ) && echo "${#a[@]}")
[[ ((numFileDir-numDir > 50)) ]] && echo "$dir: " $((numFileDir-numDir))
done < <(find . -type d -name "$PREFIX")