Журнал Системный Администратор, Февраль 2007

Журнал Системный Администратор

Февраль 2007

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Полезные советы. Утилита find

Сергей Супрунов

Не стесняйтесь искать

Поиск файлов – частая операция, если только вы не обладаете феноменальной памятью или не поддерживаете все вверенные вам файлы в строгом порядке. Да и вряд ли память вам поможет, если нужно будет найти системный файл, фигурирующий в сообщении об ошибке какой-нибудь службы.

Эта небольшая подборка советов посвящена утилите find – наиболее эффективному (но почему-то пугающему новичков) средству поиска и «массовой обработки» файлов. Начну с нескольких простых примеров.

find ./ -name "milter-spa*"

Эта команда выведет список файлов, имена которых соответствуют указанному шаблону, размещённых начиная с текущего каталога и вглубь до победного конца. Обратите внимание на несколько нестандартный порядок параметров вызова – сначала указывается начальный каталог поиска, а затем – опции.

Если вы запустите эту команду от имени непривилегированного пользователя в системном каталоге, то наверняка получите массу сообщений типа:

find: ./backup/pgsql: Permission denied

Избавиться от них поможет следующий приём:

find ./ -name "milter-spa*" 2>/dev/null

То есть сообщения об ошибках (2 – это дескриптор потока STDERR) мы просто выкидываем, оставляя лишь нормальный вывод STDOUT.

find /home/serg/samag -mindepth 2 -maxdepth 2

А это будет список всех файлов, находящихся в указанном каталоге непосредственно в его подкаталогах первого уровня. То есть будут найдены файлы samag/jail/jail-wu и samag/python/test-map.py, но не samag/meta.tgz (т.к. не в подкаталоге) и не samag/sendmailx/bin/smx (т.к. в подкаталоге второго уровня вложенности). Зачем это может понадобиться практически – затрудняюсь сказать, но, как видите, можно делать и такое.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке