Поиск в системе

find - поиск файлов и директорий

Мощнейшая утилита с массой опций для поиска файлов по различным критериям. Вот лишь некоторые из опций:

Опция Описание
-type Поиск по типу файла - f или d
-name Поиск по шаблону имени файла
-mtime Поиск файлов СТАРШЕ +5, МОЛОЖЕ -5 или ТОЧНЫМ ВОЗРАСТОМ 5 дней
-size Поиск файлов размером БОЛЬШЕ +1M, МЕНЬШЕ -1G или РАВНЫХ 100k указанному размеру
-user Поиск файлов указанного пользователя
-group Поиск файлов указанной группы
-perm Поиск файлов с указанными правами на них
-mindepth Минимальная глубина поиска (вложенность директорий)
-maxdepth Максимальная глубина поиска (вложенность директорий)
-newer Поиск файлов новее, чем указанный
-mount Поиск файлов только в текущей ФС


Логические операторы:

Оператор Описание
-and Логическое И
-not Логическое НЕ
-or Логическое ИЛИ


Операции с найденными файлами:

Операция Описание
-exec Выполнить команду для найденного файла
-ok То же самое, что и -exec, но для каждого действия будет запрошено подтверждение пользователя
-execdir То же самое, что и -exec, но выполнение команды происходит из каталога, содержащего файл
-okdir То же, что и -execdir, но запрашивает подтверждения пользователя
-ls Выводит подробную информацию о найденных файлах

Примеры:
find /var/log -type f -name boot* - найдет в директории /var/log все файлы, начинающиеся на boot
find /etc -user root - Поиск всех файлов пользователя root в директории /etc
find ~ -name “*.txt” -ls - Найти в домашнем каталоге все файлы с расширением txt и вывести о них подробную информацию
find . -not -type f - Найти и показать все директории начиная от текущего местоположения
find /var/www -mtime -7 - Найти в каталоге /var/www все файлы, которые были обновлены за последнюю неделю.
find /var/log -type f -mtime +10 -size +500k -exec rm {} \; - В каталоге /var/log найти и удалить все файлы размером более 500Кб, которые не обновлялись более 10 дней

which - поиск исполняемых бинарных файлов

Используется для определения расположения исполняемого файла (консольной команды).

Примеры - which nano, which bash, which ls.

grep - поиск по содержимому файлов

grep и его форк egrep ищут указанные данные внутри файлов.

grep <keyword> <filename> - выведет строку с заданным ключевым словом из указанного файла. Пример - grep tux /etc/passwd
grep -B1 -A1 <keyword> <filename> - ведет строку с заданным ключевым словом из указанного файла, а также одну строку перед ним и одну строку после. Пример - grep -B1 -A1 tux /etc/passwd

locate - поиск файлов и директорий по индексированной БД

Ищет файлы по названию с использованием собственной БД, не всегда входит в базовую установку ОС. Подходит для систем с большим количеством дискового пространства.
Базу данных необходимо обновлять вручную.
updatedb - обновление базы данных файлов и их расположений.
locate <filename> - ищет в системе указанный файл и выводит его расположение. Пример - locate test1.