Назад | Перейти на главную страницу

Как найти все исполняемые файлы? (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 файла в текущем каталоге

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

работал у меня. любые другие решения?

find . -type f -perm +111

Из find(1):

-перма [- | +]Режим

В Режим может быть символическим (см. chmod(1)) или восьмеричное число. Если Режим является символическим, предполагается начальное значение, равное нулю, и Режим устанавливает или очищает разрешения независимо от маски создания режима файла процесса. Если Режим является восьмеричным, только биты 07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO) битов режима файла участвуют в сравнении. Если Режим предшествует тире ("-"), этот первичный объект оценивается как истина, если по крайней мере все биты в режиме установлены в битах режима файла. Если Режим предшествует знак плюса ("+"), этот первичный объект оценивается как истина, если какой-либо из битов в Режим устанавливаются в битах режима файла. В противном случае этот первичный объект оценивается как истина, если биты в Режим точно соответствуют битам режима файла. Обратите внимание, что первый символ символьного режима не может быть тире ("-").

Не указано в SUSv3, но переносимо, по крайней мере, в * BSD и Linux (другие я не тестировал).

Ну если хочешь Устройства Руба Голдберга, вы можете использовать:


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

Хотя это только список текущего каталога.