我正在尝试获取以下信息,给定一个包含很多文件夹的文件夹,获取每个文件夹的名称和子文件夹的总数,无需递归,以便快速完成。
为此我正在尝试:
ls -d */ | xargs ls | wc -l
这当然是sum all xargs ls,问题是我不知道怎么拆分
100000
第二次尝试是
for i in ls -d */; do echo $i; ls $i | wc -l; done
但返回
name folder
wc result
name folder
wc result
name folder
wc result
由该命令返回而不是
folder_a 1000
folder_b 10
folder_c 10
...
是否可以在一行中执行此操作,或者我是否需要创建一个 bash 脚本?
谢谢
像这样:
printf '%s\n' */ |
while IFS= read -r dir; do
res=$(printf '%s\n' "$dir"* | wc -l)
echo "$res $dir"
done