ls -alR | awk '{k=0; for(i=0;i<=8;i++) k+=((substr($1, i+2, 1)~/[rwx]/)*2^(8-i)); if(k)printf("%o", k); print}' | cut -c 1-3 | sort -n | uniq -c | cut -d " " -f 6-8
输出:
1 .:
./.
1 ./b
2 ./D
1 ./M
2 ./o
1 ./P
1 ./T
tot
1 ./V
1 1./
1 4./
2 10.
1 40.
2 500
20 640
644
700
78 755
3 764
77 775
6 777
所需输出:仅按文件权限分组的文件数。 e.g。
2 774
3 664
答案 0 :(得分:0)
find /path/to/dir -printf '%m\n' | sort | uniq -c
%m
代表-printf
格式的文件权限。 \n
代表换行符。