Cryptsetup: LVM отсутствует (в системе без LVM)

Если вам нужен список исполняемых файлов, find будет достаточно:

IFS=':'
find $PATH -type f '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')'

Это перечислит полный путь каждого исполняемого файла в ваш $ PATH . IFS = ':' обеспечивает разделение $ PATH на двоеточия (: ), разделитель для этой переменной.

Если вам не нужен полный путь , а только имена исполняемых файлов , вы можете сделать

IFS=':'
find $PATH -type f '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')' -exec basename {} \; | sort

Если ваш find совместим с GNU , условие немного упрощается:

IFS=':'
find $PATH -type f -executable -exec basename {} \; | sort

Как указывает @StephenHarris, с этим есть небольшая проблема: если есть подкаталоги вашего $ PATH , файлы в этих подкаталогах могут быть зарегистрированы даже хотя $ PATH не может связаться с ними. Чтобы обойти это, вам на самом деле понадобится find с большим количеством параметров, чем требует POSIX.GNU-совместимый может обойти это с помощью:

IFS=':'
find $PATH -maxdepth 1 -type f -executable -exec basename {} \; | sort

-maxdepth 1 сообщает find не входить ни в один из этих подкаталогов.

1
28.01.2016, 04:28
0 ответов

Теги

Похожие вопросы