如何查找所有可执行文件? (AIX)

-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个文件

  • AIX
  • 非gnu'find',所以“find。-executable”将不起作用

 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_IRWXOS_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 }' 

虽然这只列出当前目录。