我有3个目录2,其中无法读取;
d-----S--- 2 me me 4096 Feb 10 11:02 dir1
d-----S--- 2 me me 4096 Feb 10 11:02 dir2
drwxrws--- 2 me me 4096 Feb 10 11:02 dir3
我的find命令是:find。 -type d 1> / dev / null
find: `./dir1': Permission denied
find: `./dir2': Permission denied
我基本上想找到我无法读取的目录数量并计算它们。 我现在怎么算这个?到目前为止,我已经尝试了以下内容;
find . -type d 1> /dev/null | cat | wc -l
find . -type d -print 1>/dev/null | tee /dev/tty | wc -l
他们都返回0.为什么?我该如何解决?
答案 0 :(得分:2)
Permission Denied转到标准错误,所以我尝试这样的事情:
$ find <your_path_here> -type d 2>&1 | grep -c "Permission denied"
而且......如果你真的想使用wc -l
:
$ find /proc -type d 2>&1 | grep "Permission denied" | wc -l
答案 1 :(得分:2)
使用find
,您可以使用! -readable
获取所有不可读的条目:
find . -mindepth 1 -maxdepth 1 -type d ! -readable -printf '.' | wc -c
当目录名由换行符组成时,使用-printf '.' | wc -c
来获取计数权限。