例
-rwxr--r-- 1 me users 0 May 27 13:58 file_0 -rw-rwxrw- 1 me users 0 May 27 13:58 file_1 -rw-rw-rwx 1 me users 0 May 27 13:59 file_2 -rwxrwxrwx 1 me users 0 May 27 14:02 file_3
我需要列出当前目录中的所有4个文件
find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \)
为我工作。 任何其他解决scheme
find . -type f -perm +111
从find(1) :
-perm [ – | +] 模式
模式可以是符号(参见
chmod(1))或八进制数。 如果模式是符号的,则假定起始值为零,并且模式设置或清除权限,而不考虑进程的文件模式创build掩码。 如果模式为八进制,则只有文件模式位的位07777(S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO)S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO参与比较。 如果模式前面有破折号(“-”),则至less将模式中的所有位都设置为文件的模式位,则该主模式的计算结果为真。 如果模式前面有一个加号(“+”),如果模式中的任何位都设置在文件模式位中,则该主模式的计算结果为真。 否则,如果模式中的位与文件的模式位完全匹配,则该主节点的计算结果为真。 请注意,符号模式的第一个字符可能不是破折号(“-”)。
没有在SUSv3中指定,但至less可以在* BSD和Linux上移植(我没有testing过其他的)。
那么,如果你喜欢Rube Goldberg设备 ,你可以使用:
ls -l | grep '^[^d]\(..x\|.\{5\}x\|.\{8\}x\)' | awk '{ print $8 }'
虽然这只列出当前目录。