Таблица 17.1. Проверки типов файлов в find
Тип файлов
|
Описание
|
b
|
Специальный файл блочного устройства
|
c
|
Специальный файл символьного устройства
|
d
|
Каталог
|
f
|
Обычный файл
|
l
|
Символическая ссылка
|
Добавив дополнительные проверки, можно выполнять поиск файлов по размеру и имени. Давайте найдем все обычные файлы с именами, соответствующими шаблону *.JPG, и имеющие размер больше 1 мегабайта:
[me@linuxbox ~]$ find ~ -type f -name "*.JPG" -size +1M | wc -l
840
В этом примере мы добавили проверку -name с шаблоном имени файла. Обратите внимание, что шаблон заключен в кавычки, чтобы предотвратить подстановку имен файлов командной оболочкой. Далее мы добавили проверку -size со строкой +1M. Начальный символ «плюс» указывает, что требуется искать файлы, размер которых превышает указанное число. Начальный символ «минус» изменил бы значение строки на противоположное: «меньше указанного числа». Число без знака означает: «в точности соответствует значению». Буква M в конце определяет единицы измерения – мегабайты (Megabytes). В табл. 17.2 перечислены символы, которые можно использовать для обозначения единиц измерения.
Команда find поддерживает множество разнообразных проверок. В табл. 17.3 приводится краткое описание наиболее часто используемых из них. Обратите внимание, что в случаях, когда требуется числовой аргумент, допустимо использование формы записи с символами + и -, обсуждавшейся выше.
Таблица 17.2. Единицы измерения, поддерживаемые командой find
Символ
|
Единица измерения
|
b
|
Блоки размером по 512 байт (используется по умолчанию, если иное не указано явно)
|
c
|
Байты
|
w
|
2-байтные слова
|
k
|
Килобайты (Kilobytes, блоки по 1024 байт)
|
M
|
Мегабайты (Megabytes, блоки по 1 048 576 байт)
|
G
|
Гигабайты (Gigabytes, блоки по 1 073 741 824 байт)
|
Таблица 17.3. Проверки, поддерживаемые командой find
Проверка
|
Описание
|
-cmin n
|
Соответствует файлам или каталогам, содержимое или атрибуты которых последний раз изменялись точно n минут назад. Чтобы выразить условие «менее n минут назад», используйте -n; чтобы выразить условие «более n минут назад», используйте +n
|
-cnewer имя
|
Соответствует файлам или каталогам, содержимое или атрибуты которых последний раз изменялись позже, чем у файла с указанным именем
|
-ctime n
|
Соответствует файлам или каталогам, содержимое или атрибуты (то есть разрешения) которых последний раз изменялись более чем n*24 часа назад
|
-empty
|
Соответствует пустым файлам и каталогам
|
-group группа
|
Соответствует файлам или каталогам, принадлежащим указанной группе. Группа может задаваться именем или числовым идентификатором группы
|
-iname шаблон
|
Действует так же, как проверка -name, но различает регистр символов
|
-inum n
|
Соответствует файлам с номером индексного узла (inode) n. Эту проверку удобно использовать для поиска всех жестких ссылок на определенный индексный узел
|
-mmin n
|
Соответствует файлам или каталогам, содержимое которых последний раз изменялось n минут назад
|
-mtime n
|
Соответствует файлам или каталогам, содержимое которых последний раз изменялось n*24 часов назад
|
-name шаблон
|
Соответствует файлам и каталогам, имена которых совпадают с указанным шаблоном
|
-newer имя
|
Соответствует файлам и каталогам, содержимое которых последний раз изменялось позже, чем у файла с указанным именем. Эта проверка может пригодиться в сценариях, выполняющих резервное копирование файлов. Каждый раз в процессе создания резервной копии можно обновлять файл (например, файл журнала) и затем с помощью find определять, какие файлы изменились с момента последнего обновления
|
-nouser
|
Соответствует файлам и каталогам, не принадлежащим какому-либо допустимому пользователю. Эту проверку можно использовать для поиска файлов, принадлежащих удаленным учетным записям, или для обнаружения следов злоумышленников
|
-nogroup
|
Соответствует файлам и каталогам, не принадлежащим какой-либо допустимой группе
|
-perm режим
|
Соответствует файлам или каталогам с указанным режимом доступа. Режим может выражаться восьмеричным числом или иметь символическую форму
|
Читать дальше