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

web*_*sen 4 unix shell 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
Run Code Online (Sandbox Code Playgroud)

我需要列出当前目录中的所有 4 个文件

  • 艾克斯
  • 非 gnu 'find',所以“find .-executable”不起作用

web*_*sen 6

find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \)
Run Code Online (Sandbox Code Playgroud)

为我工作。还有其他解决方案吗?


小智 5

find . -type f -perm +111
Run Code Online (Sandbox Code Playgroud)

来自find(1)

-perm [-|+]模式

模式可以是象征性的(见chmod(1))或八进制数。如果模式是符号的,则假定起始值为零,并且模式设置或清除权限而不考虑进程的文件模式创建掩码。如果模式是八进制,则只有S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO文件模式位的07777 ( ) 位参与比较。如果模式前面有一个破折号 (" -"),如果至少模式中的所有位都设置在文件的模式位中,则此主要评估为真。如果模式前面有加号 (" +"),如果模式中的任何位在文件的模式位中设置。否则,这主要计算结果为真,如果在该位模式完全匹配文件的模式位。请注意,符号模式的第一个字符可能不是破折号 (" -")。

未在 SUSv3 中指定,但至少可跨 *BSD 和 Linux 移植(我还没有测试其他人)。