Приемы профессиональной работы в UNIX


ПРИМЕРЫ


1. $ od `kind -d /etc/*`

Выглядит так, как будто это должно работать, но команда od не работает с набором имен файлов. Она может обрабатывать только один файл в данный момент времени.

2. $ ll `sh -x kind -a /lib/*` | m

Это длинный пример. Выводит в длинном формате список всех файлов архивов, которые находятся в каталоге /lib. Мы запускаем shell в отладочном режиме выполнения, так что вы можете увидеть каждую командную строку перед ее выполнением. Результат по конвейеру передается команде more.

3. # find / -print | kind -x | while read FILE > do > ll $FILE > done > /tmp/filelist

Данный цикл обнаруживает все действительно исполняемые файлы. Для каждого из них выполняется команда "ls -l". Отметим, что здесь команда ll вызывается для каждого имени файла.

Вы могли бы выполнить ту же операцию при помощи такого оператора find:

find / -perm -0111 -exec ll {} \;

но опция perm в данном случае опять же проверяет биты прав доступа в индексном дескрипторе файла, а не ищет магическое число в структуре a.out, как описано ранее. Кстати, для того, чтобы вы могли успешно запустить команду file (и тем самым kind) на системных файлах, вы должны иметь права чтения, чтобы можно было прочитать магическое число.

4. $ for F in `kind /bin/* /usr/bin/* /etc/*` > do > fgrep "trap" $F /dev/null > done $ fgrep "trap" `kind /bin/* /usr/bin/* /etc/*`

$ find /bin /usr/bin/etc -exec fgrep "trap" {} \;

Это три различных способа поиска слова "trap" во всех текстовых файлах.




Начало  Назад  Вперед