Поиск в системе
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.