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所需输出:仅按文件权限分组的文件数。例如:
2 774
3 664发布于 2015-10-28 10:53:25
find /path/to/dir -printf '%m\n' | sort | uniq -c%m代表-printf格式的文件权限,\n代表换行符。
https://stackoverflow.com/questions/33382075
复制相似问题