BASH:使用wc -l查找结果的目录和计数

时间:2016-02-10 17:27:27

标签: bash

我有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.为什么?我该如何解决?

2 个答案:

答案 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来获取计数权限。