Команда find

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

Общий вид команды:

user$ find

Следующая команда ищет все файлы в текущем каталоге и во всех подкаталогах, названия которых начинаются с ".t":

user$ find -name '.e*'
./.thunderbird
./.thunar
./.textgen

В следующем примере find ищет все каталоги, находящиеся в /etc/. Обычные файлы, располагающиеся в /etc/., среди результатов не показываются. Список результатов упорядочивается по алфавиту с помощью команды sort (по умолчанию такой сортировки не происходит).

root# find /etc -type d | sort
/etc
/etc/alsa
/etc/alsa/conf.d
/etc/alternatives
...

В следующем примере find ищет все файлы в (под)каталогах /home, принадлежащих пользователям группы users, причем искомые файлы должны были каким-либо образом быть изменены в течение последних пяти дней (содержание, права доступа и т. д.):

root# find /home -group users -mtime -5
...

Команда find -mtime +5 находит такие файлы, которые были изменены ранее, чем пять дней назад, а команда -mtime 5 возвращает файлы, которые были изменены ровно пять дней назад. При этом во многих случаях "вчера" означает для find "24 и более часов от данного момента". Если вместо -mtime применить параметр -ctime, то точкой изменения времени будет считаться "время изменения индексного дескриптора". Эта точка изменяется и тогда, когда изменились лишь права доступа, а содержимое каталога осталось прежним.

Следующая команда удаляет все резервные копии, содержащиеся в данном каталоге и во всех подкаталогах. При этом find строит список всех сомнительных файлов и передает его команде rm через подстановку команды ($(команда)):

user$ rm $(find. -name '*~')

Если речь идет об очень большом количестве файлов, то при выполнении вышеуказанной команды возникает ошибка: запись со всеми *~-файлами может получиться настолько длинной, что превысит размер командной строки. В таких случаях следует воспользоваться либо параметром -exec - команды find, либо командой xargs.