— 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, и если какой‑то файл создан более пяти дней назад, она удаляет его, но сначала просит вас подтвердить эту операцию: