Выбрать главу

— N — меньше заданного,

N -pавен заданному.

Если в аргументе дополнительно указан символ 'c', то размер считается заданным в байтах, а не в блоках, а если символ к — в килобайтах.

Для поиска файлов, размер которых превышает 1 Мб, предназначена команда

$ find . — size +1000k -print

Следующая команда выполняет поиск в каталоге /home/apache файлов, размер которых в точности равен 100 байтам:

$ find /home/apache -size 100c -print

Произвести поиск файлов, размер которых превышает 10 блоков (5120 байтов), позволяет приведенная ниже команда:

$ find . — size +10 -print

2.1.10. Опция -depth

Опция -depth позволяет организовать поиск таким образом, что сначала проверяются все файлы текущего каталога (и рекурсивно все его подкаталоги) и только в конце — запись самого каталога. Эта опция широко применяется при создании списка файлов, помещаемых в архив на магнитной ленте с помощью команды cpio или tar, так как в этом случае сначала записывается на ленту образ каталога и лишь после этого задаются права доступа к нему. Это позволяет пользователю архивировать те каталоги, для которых у него нет разрешения на запись.

Следующая команда выводит список всех файлов и подкаталогов текущего каталога:

$ find . — name "*" — print -о -name ".*" — print -depth

Вот как могут выглядеть результаты ее работы:

./.Xdefaults

./.bash_logout

./.bash_proflie

./.bashrc

./.bash_history

./file

./Dir/file1

./Dir/file2

./Dir/file3

./Dir/Subdir/file4

./Dir/Subdir

./Dir

2.1.11. Опция -mount

Поиск файлов только в текущей файловой системе, исключая другие смонтированные файловые системы, обеспечивает опция -mount команды find . В следующем примере осуществляется поиск всех файлов с расширением хс в текущем разделе диска:

$ find / -name "*.XC" — mount -print

2.1.12. Поиск файлов с последующей архивацией командой cpio

Команда cpio применяется главным образом для записи файлов на магнитную ленту и чтения их с ленты. Очень часто она используется совместно с командой find, по каналу принимая от нее список файлов.

Вот как выполняется запись на магнитную ленту содержимого каталогов /etc, /home и /apps:

$ cd /

$ find etc home apps -depth -print | cpio -ov > dev/rmt0

Опция -o команды cpio задает режим записи файлов на ленту. Опция -v (verbose -cловесный режим) является указанием команде cpio сообщать о каждом обрабатываемом файле.

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

2.1.13. Опции -exec и -ok

Предположим, вы нашли нужные файлы и хотите выполнить по отношению к ним определенные действия. В этом случае вам понадобится опция -exec (некоторые системы позволяют с помощью опции -exec выполнять только команды ls или

ls -l). Многие пользователи применяют опцию -exec для нахождения старых файлов, подлежащих удалению. Я рекомендую вместо команды rm выполнить сначала команду ls, чтобы убедиться в том, что команда find нашла именно те файлы, которые нужно удалить.

После опции -exec следует указать выполняемую команду, а затем ввести фигурные скобки, пробел, обратную косую черту и, наконец, точку с запятой. Рассмотрим пример:

$ find . — type f -exec ls -1 {} \;

-rwxr‑xr‑x 10 root wheel 1222 Jan 4 1993 ./sbin/C80
-rwxr‑xr‑x 10 root wheel 1222 Jan 4 1993 ./sbin/Normal
-rwxr‑xr‑x 10 root wheel 1222 Jan 4 1993 ./sbin/Revvid

Здесь выполняется поиск обычных файлов, список которых отображается на экране с помощью команды ls -l.

Чтобы найти файлы, которые не обновлялись в каталоге /logs в течение последних пяти дней, и удалить их, выполните следующую команду:

$ find /logs -type f -mtime +5 -exec rm {} \;

Следует соблюдать осторожность при перемещении и удалении файлов. Пользуйтесь опцией -ok, которая позволяет выполнять команды mv и rm в безопасном режиме (перед обработкой очередного файла выдается запрос на подтверждение). В следующем примере команда find находит файлы с расширением LOG, и если какой‑то файл создан более пяти дней назад, она удаляет его, но сначала просит вас подтвердить эту операцию: