find — поиск файлов.
find список_поиска выражение
Команда find рекурсивно просматривает каждый из каталогов, перечисленных в списке_поиска, отыскивая файлы, удовлетворяющие логическому выражению, построенному с помощью описанных ниже средств. В список_поиска могут входить и обычные файлы. Далее n
обозначает целое десятичное число, на месте которого могут также указываться комбинации +n
, что означает «больше, чем n», и -n
, что означает «меньше, чем n». Элементарные логические выражения и их результаты:
-
, то для сравнения из режима файла берутся только биты, соответствующие битам восьмеричного_числа, равным единице.c
, где c
есть b
, c
, d
, p
или f
— блочный или символьный специальный файл, каталог, именованный канал или обычный файл.n
ссылок./etc/passwd
, оно рассматривается как идентификатор пользователя./etc/group
, оно рассматривается как идентификатор группы.n
блоков (по 512 байт). Если указана буква c
, то размер файла задается в символах. Напомним, что с помощью комбинаций +n
и -n
можно проверять размер (и три указанные ниже характеристики) не только на равенство, но и на неравенство.n
дней назад. Сама команда find изменяет время доступа к каталогам, входящим в список_поиска.n
дней назад.n
дней назад.-exec
за исключением того, что перед выполнением команды запрашивается подтверждение (в виде сгенерированной командной строки со знаком вопроса в конце) и она выполняется только при ответе y
.Элементарные логические выражения могут комбинироваться с помощью следующих операций (в порядке уменьшения приоритета):
a.out
или *.o
, доступ к которым не производился в течение недели: find / \( -name a.out -o -name '*.o' \) \ -atime +7 -exec rm {} \;
find . -size 0c -ok rm {} \;
/etc/passwd
/etc/group
Команда
find / -depth
всегда завершается неудачей с сообщением
find: stat failed: : No such file or directory
Она исправно обходит все файлы, кроме корневого каталога.