我正在寻找一种方法来search一个或多个目录,并列出所有对公用目录具有错误权限的文件。
你的问题可以说得更清楚,尤其是 公共目录的“错误权限”是什么意思?
假设你想要目录是755和普通文件是644,我会这样做:
$ find \! -perm 644 -type f -o \! -perm 755 -type d
这对我有效
find . \! -perm +755
\! 标志表示不是, -perm选项使用正常的chmod选项
一切都取决于你认为“不正确的许可”。 人find帮助你通过定义的方式如何可以寻找文件/目录与给定的权限:
-perm -mode All of the permission bits mode are set for the file. Symbolic modes are accepted in this form, and this is usually the way in which would want to use them. You must specify 'u', 'g' or 'o' if you use a symbolic mode. See the EXAMPLES section for some illustrative examples. -perm /mode Any of the permission bits mode are set for the file. Symbolic modes are accepted in this form. You must specify 'u', 'g' or 'o' if you use a symbolic mode. See the EXAMPLES section for some illustrative examples. If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with the behaviour of -perm -000). -perm +mode Deprecated, old way of searching for files with any of the permission bits in mode set. You should use -perm /mode instead. Trying to use the '+' syntax with symbolic modes will yield surprising results. For exam‐ ple, '+u+x' is a valid symbolic mode (equivalent to +u,+x, ie 0111) and will therefore not be evaluated as -perm +mode but instead as the exact mode specifier -perm mode and so it matches files with exact permissions 0111 instead of files with any execute bit set. If you found this para‐ graph confusing, you're not alone - just use -perm /mode. This form of the -perm test is deprecated because the POSIX specification requires the interpretation of a leading '+' as being part of a symbolic mode, and so we switched to using '/' instead.