Следующая команда работает в Ubuntu (GNU findutils 4.4.2), но не в Fedora (4.2.27).
time find . -maxdepth 1 -type f -executable -print
Как найти исполняемые файлы с помощью более старой версии find?
find . -maxdepth 1 -type f -perm /a+x
От мужчины:
-перм / режим
Для файла установлен любой из битов разрешения режима. В этой форме принимаются символьные режимы. Вы должны указать ’u’, ’g’ или ’o’, если вы используете символьный режим. См. Несколько наглядных примеров в разделе ПРИМЕРЫ. Если в режиме биты разрешений не установлены, этот тест в настоящее время не соответствует файлам. Однако вскоре он будет изменен для соответствия любому файлу (идея состоит в том, чтобы больше соответствовать поведению perm -000).
В разделе ПРИМЕРЫ есть кое-что, где find
показывает все файлы, доступные для записи. А find
на исполняемых файлах будет аналогично данному примеру.
find . -type f -perm -111
Примечание: -111, а не 111
find . | file -f - | grep executable
может быть намного медленнее, но также будет искать вещи, которые являются исполняемыми, но не обязательно разрешенными как таковые. Возможно, вам придется изменить то, что вы используете для повышения точности (это также будет соответствовать файлу с именем "исполняемый.jpg"), узкие результаты (возможно, вы ищете только определенный тип exe), и вы можете захотеть изменить результат позже .
На самом деле было бы полезно знать Зачем вы делаете это, чтобы построить лучший ответ :)
time find . -maxdepth 1 -type f -perm /a=x -print