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

如何查找所有可执行文件?(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 个文件

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

答案1

find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \)

对我有用。还有其他解决方案吗?

答案2

find . -type f -perm +111

find(1)

-perm[-|+]模式

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

在 SUSv3 中没有指定,但至少可以在 *BSD 和 Linux 之间移植(我还没有测试过其他的)。

答案3

嗯,如果你喜欢的话鲁布·戈德堡装置,你可以使用:


ls -l | grep '^[^d]\(..x\|.\{5\}x\|.\{8\}x\)' | awk '{ print $8 }'

虽然这只列出了当前目录。

相关内容