URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8241
[ Назад ]

Исходное сообщение
"Скрипт_Linux"

Отправлено KU_KU , 26-Апр-09 23:21 
Здравствуйте!
Задача, состоит в том, чтоб найти  количество команд 'if' в скриптах, которые имеют атрибут исполняемых и лежат в каталоге /usr/bin.
Вроде задача легкая насчет первой части (grep -i "^if$" | wc -l), но как найти те файлы, которые имеют атрибут исполняемых при разных правах.
Помогите пожалуйста кто сможет. Очень надо.

Содержание

Сообщения в этом обсуждении
"Скрипт_Linux"
Отправлено gaa , 27-Апр-09 00:11 
>но как найти те файлы, которые имеют атрибут исполняемых при разных
>правах.

find $dir -type f -executable

Это для GNU find. Для обычного find почитай про -perm и примеры к нему.


"Скрипт_Linux"
Отправлено KU_KU , 27-Апр-09 12:03 
>>но как найти те файлы, которые имеют атрибут исполняемых при разных
>>правах.
>
>find $dir -type f -executable
>
>Это для GNU find. Для обычного find почитай про -perm и примеры
>к нему.

find   с ключом -executable
и в man нету ключа -executable



"Скрипт_Linux"
Отправлено gaa , 27-Апр-09 19:38 
>и в man нету ключа -executable

Значит у тебя не GNU find. Читай тогда про -perm.



"Скрипт_Linux"
Отправлено sproot , 02-Май-09 17:21 
>Здравствуйте!
>Задача, состоит в том, чтоб найти  количество команд 'if' в скриптах,
>которые имеют атрибут исполняемых и лежат в каталоге /usr/bin.
>Вроде задача легкая насчет первой части (grep -i "^if$" | wc -l),
>но как найти те файлы, которые имеют атрибут исполняемых при разных
>правах.
>Помогите пожалуйста кто сможет. Очень надо.

Во-первых, про какие скрипты речь. Во-вторых, синтаксический анализ вещь довольно интересная и не ограничивается одним только "^if$". Вот "решение на коленке":

find /usr/bin -type f -perm /u+x,g+x,o+x -exec file {} \; | grep -E 'shell|perl script' | awk -F':' '{print $1}' | xargs -n 1 -i /bin/bash -c 'echo -n "{} " ; grep if {} | wc -l'

первая колонка путь к скрипту, вторая количество втретившихся 'if'. Отфильтровать и преобразовать информацию, думаю, проблем не составит.