пример
-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 }'
Хотя это только список текущего каталога.