我只是想知道如何使用终端在文件夹中找到根本没有组用户权限(无读/写/执行)的文件。
答案1
您可以使用:
find . \! -perm /070
或者:
find . \! -perm /g+rwx
这是因为:
当测试的操作数
-perm
以 开头时/
,它会导致-perm
测试是否任何指定的权限均存在。(如果你使用
-
代替/
,它会测试全部存在。如果没有前缀字符,它将测试确切地指定的权限,即所有权限并且没有其他人展示。)这与你所寻找的正好相反——没有任何是相反的任何-- 以及不是运算符
\!
否定其后面跟的测试的结果。(操作符实际上是
!
,您可能也可以这样写,但通常写为 以\!
确保某人的 shell 将其传递给find
而不是特殊处理它。)
至于后面具体字符串的含义/
,请参见文件权限,这篇维基百科文章和/或man chmod
。总之,如应用于上面显示的命令:
070
是一个八进制权限字符串,分别指定用户(即所有者)、组和其他(即其他所有人)的权限。 7 表示读取 (4)、写入 (2) 和执行 (1) 权限(即111
具有、和1
中的位)。100
010
001
g+rwx
是一个符号权限字符串,指定组 (g
) 具有读 (r
)、写 (w
) 和执行 (x
) 权限。
无论使用哪种符号,请记住,您表达的与您最终想要的相反,因为测试的结果被否定了!
。
答案2
要查找当前目录或其子目录中未设置任何组读取、写入或执行位的文件,请运行:
find . ! -perm /g+rwx
答案3
使用您私人终端上的简单命令运行:
sudo df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -nogroup -ls