Нахождение нужных файлов и строк в Linux — важный навык для администраторов и DevOps-специалистов. В этом руководстве рассмотрены ключевые команды, которые помогут быстро находить файлы, строки в них и анализировать их содержимое.
Поиск файлов по названию
- find /path -name “*.log” — поиск файлов с определённым именем или шаблоном (например, всех файлов с расширением .log).
- find /path -iname “file.txt” — поиск файла без учёта регистра.
- find /path -type d -name “config” — поиск каталога с определённым именем.
- find /path -type f -name “file” — поиск всех файлов, начинающихся на file.
Поиск файлов по размеру и дате
- find /path -size +100M — поиск файлов больше 100 мегабайт.
- find /path -size -10k — поиск файлов меньше 10 килобайт.
- find /path -mtime -7 — поиск файлов, изменённых за последние 7 дней.
- find /path -atime +30 — поиск файлов, которые не открывались более 30 дней.
Поиск строк в файлах
- grep “pattern” file — поиск указанного шаблона в файле.
- grep -i “pattern” file — поиск без учёта регистра.
- grep -r “pattern” /path — рекурсивный поиск по каталогу и его подкаталогам.
- grep -rnw . -e “pattern” — поиск строки в файлах внутри текущей директории и её поддиректорий.
- grep -v “error” file — поиск строк, НЕ содержащих слово error.
Поиск и удаление файлов
- find /path -name “*.tmp” -delete — найти и удалить временные файлы .tmp.
- find /path -type f -empty -delete — удалить все пустые файлы.
- find /path -type d -empty -delete — удалить все пустые каталоги.
Использование locate и whereis
- locate file.txt — быстрый поиск файла с именем file.txt (требует базы updatedb).
- updatedb — обновление базы данных locate (нужно запускать периодически).
- whereis ls — поиск местоположения бинарного файла, исходников и документации команды ls.
Комбинирование поиска с командами
- find /path -name “*.log” | xargs grep “error” — найти файлы .log и в них строки, содержащие error.
- grep -r “function” /path | cut -d: -f1 | sort | uniq — найти все файлы с function, вывести их пути без дубликатов.
FAQ (Часто задаваемые вопросы)
Как ускорить поиск файлов? Используйте команду locate, она работает быстрее find, так как ищет в заранее обновлённой базе данных.
Как искать только в определённых файлах? Можно использовать grep с указанием расширения: grep -r –include=\*.txt “pattern” /path.
Как искать файлы с определёнными правами? Используйте find с -perm, например, find /path -type f -perm 644 найдёт файлы с правами 644.
Вывод
Знание команд поиска в Linux значительно облегчает работу с системой. Используйте find, grep и locate, чтобы быстро находить нужные файлы и строки в них. Комбинируя команды, можно создать мощные поисковые конструкции, экономящие время DevOps-инженеров и системных администраторов.
База знаний Serverspace
В базе знаний Serverspace вы найдете еще больше полезных шпаргалок, инструкций и руководств по Linux, администрированию серверов, облачным технологиям и DevOps. Здесь собраны статьи, которые помогут как новичкам, так и опытным специалистам эффективно работать с системами и автоматизировать задачи.