在bash shell中,如何输出所有用户(即用户,组和其他用户)可读的文件。
我尝试了find -readable
,但它输出了至少一个用户可读的内容。
有什么想法吗?
答案 0 :(得分:3)
有许多因素会影响一个用户读取文件的方式,但基本上您可以在others
组中搜索带有+ r属性的文件。这是使用find
:
find -perm -o=r
那将包括文件和目录。要特定于文件,请添加`-type f``:
find -perm -o=r -type f
它可能与-0004
相同:
find -perm -0004 -type f
答案 1 :(得分:0)
试试这个:
for i in *; do
[[ $(stat -c %A "$i") =~ (-rw.rw.rw.|drwxrwxrwx) ]] && echo "$i"
done
如果您使用bash4,则可以使用以下方式递归执行:
shopt -s globstar
for i in **; do
...