🔍 Поиск и просмотр файлов в Linux

Platform Category Level Tested on


🧭 Введение

Linux предоставляет множество мощных инструментов для поиска, фильтрации и просмотра файлов. Эти команды позволяют быстро находить нужные данные даже в огромных системах с тысячами файлов.


🗂️ 1. Поиск файлов и каталогов — find

Команда find — универсальный инструмент для поиска по файловой системе.

📘 Примеры базового использования

find /etc -name "nginx.conf"
find /var/log -type f -name "*.log"
find /home -type d -name "Documents"
Опция Значение
-name "имя" поиск по имени (регистрозависимый)
-iname "имя" поиск без учёта регистра
-type f искать только файлы
-type d искать только каталоги
-mtime по дате изменения
-size по размеру
-user по владельцу

🔍 Примеры

# Найти все файлы изменённые за последние сутки
find /var/log -type f -mtime -1

# Найти файлы больше 100 МБ
find /home -type f -size +100M

# Найти и удалить временные файлы
find /tmp -type f -name "*.tmp" -delete

[!TIP] Добавь ключ -ls для вывода подробной информации о найденных файлах:

find /var/log -type f -name "*.log" -ls

⚡ 2. Быстрый поиск по индексам — locate

locate ищет файлы по базе данных, а не в реальном времени, что делает его значительно быстрее find.

📘 Пример

locate nginx.conf
locate -i sshd
Команда Описание
locate имя поиск по базе
updatedb обновить базу данных
-i игнорировать регистр
-c показать количество найденных файлов

[!NOTE] Если система только установлена, сначала выполни:

sudo updatedb

🧮 3. Поиск текста внутри файлов — grep

grep "Listen" /etc/httpd/conf/httpd.conf
grep -r "server" /etc/nginx/
Опция Значение
-r рекурсивный поиск в подкаталогах
-i игнорировать регистр
-n показывать номера строк
--color=auto подсветка найденного текста

📘 Примеры:

# Найти упоминания "root" в файлах /etc
grep -R --color=auto "root" /etc

# Найти строки с ошибками в логах
grep -i "error" /var/log/syslog

[!TIP] Для поиска по бинарным файлам можно использовать strings | grep.


📄 4. Просмотр содержимого файлов — cat

cat /etc/os-release

Выводит содержимое файла в стандартный поток вывода.

🔹 Полезные опции

Опция Описание
-n пронумеровать строки
-b нумеровать только непустые строки
-A показать все символы (включая невидимые)

📘 Примеры:

cat -n /etc/passwd
cat -A /etc/hostname

[!TIP] cat отлично подходит для объединения файлов:

cat part1.txt part2.txt > full.txt

📜 5. Пошаговый просмотр больших файлов — less

less /var/log/syslog

Удобная утилита для чтения больших файлов постранично.

Команда внутри less Действие
↑ / ↓ перемещение по строкам
PgUp / PgDn листание страниц
/текст поиск по тексту
n / N повтор поиска вперёд / назад
q выход

📘 Пример:

sudo less /var/log/auth.log

[!TIP] Можно комбинировать:

grep "error" /var/log/syslog | less

🔚 6. Просмотр конца файла — tail

tail /var/log/syslog

Показывает последние строки файла (по умолчанию 10).

Опция Описание
-n указать количество строк
-f следить за изменениями в реальном времени
-F то же, но с авто-переподключением при изменении файла

📘 Примеры:

tail -n 50 /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

[!TIP] Очень полезно при отладке:

tail -f /var/log/messages | grep "sshd"

🔝 7. Просмотр начала файла — head

head -n 20 /etc/passwd

Показывает первые строки файла.

📘 Пример:

head -n 5 /var/log/syslog

[!TIP] head и tail можно комбинировать для извлечения нужного диапазона строк.


🧠 8. Просмотр метаданных файла — stat

stat /etc/hosts

Показывает:

📘 Пример:

stat /var/log/syslog

[!NOTE] Альтернатива: ls -lh --time-style=long-iso /etc/hosts


🧰 9. Поиск файлов по размеру и дате

# Найти файлы больше 500 МБ
find /home -type f -size +500M

# Найти файлы изменённые за последние 7 дней
find /etc -type f -mtime -7

📘 Комбинированный пример:

find /var/log -type f -name "*.log" -mtime -3 -size +10M

[!TIP] Можно автоматически сжимать найденные логи:

find /var/log -type f -name "*.log" -mtime +7 -exec gzip {} \;

⚙️ 10. Быстрые приёмы и комбинации

🔹 Найти и просмотреть сразу:

find /etc -name "sshd_config" -exec cat {} \;

🔹 Найти файл и вывести первые строки:

find /var/log -name "*.log" -exec head -n 3 {} \;

🔹 Смотреть файл “вживую” при обновлении:

tail -f /var/log/syslog | grep "systemd"

🔹 Найти большие файлы и отсортировать по размеру:

find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -hr | head

🚀 Заключение

Команды find, locate, grep, cat, less, head, tail и stat — это набор инструментов, без которых невозможно представить администрирование Linux.

Освоив их, ты сможешь:


[!TIP] Для ускорения работы добавь алиасы в ~/.bashrc:

alias ff='find . -type f -name'
alias fgrep='grep -R --color=auto'
alias logs='cd /var/log && ls -lh'

Применить:

source ~/.bashrc