Поиск файлов (find, grep)
Откройте для себя мощные команды 'find' и 'grep' для поиска файлов и определённых текстовых шаблонов внутри файлов в системе.
«Поиск файлов (find, grep)» — бесплатный урок Linux Command Line & Bash Scripting Mastery на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Command Line & Bash Scripting Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Зачем нужен поиск в Linux?
Поиск файлов и текста — повседневная задача в Linux. Представьте, что Вам нужно найти определённый файл конфигурации или строку кода в большом проекте!
Мы изучим две мощные команды: find для поиска файлов и каталогов и grep для поиска текстовых шаблонов *внутри* файлов.
Знакомство с командой `find`
Команда find ищет файлы и каталоги в иерархии каталогов. Она очень гибкая!
Её базовая структура: find [path] [expression]. Параметр [path] указывает find, где начать поиск, а [expression] определяет, что нужно найти.
Поиск файлов по имени
Чаще всего команда find используется для поиска по имени с параметром -name. Можно применять подстановочные символы, например *.
Найдём все файлы, оканчивающиеся на .txt, в текущем каталоге.
cd /tmp
touch report.txt document.pdf notes.txt
find . -name "*.txt"Поиск файлов по типу
С помощью параметра -type можно указать, какой тип объекта должна искать команда find:
f— обычные файлыd— каталоги
Найдём все каталоги в текущем расположении.
cd /tmp
mkdir mydir anotherdir
touch file.txt
find . -type dПоиск файлов по размеру
Нужно найти большие файлы? Используйте параметр -size. Можно указывать такие единицы, как c (байты), k (KB), M (MB), G (GB).
+10M: больше 10 MB-5k: меньше 5 KB100c: ровно 100 байт
Найдём файлы размером более 1 KB.
cd /tmp
dd if=/dev/zero of=small_file bs=100 count=1 2>/dev/null
dd if=/dev/zero of=large_file bs=2k count=1 2>/dev/null
find . -size +1kЗнакомство с `grep`
Если find находит файлы, то grep (глобальный вывод регулярных выражений) ищет определённые текстовые шаблоны *внутри* файлов.
Его базовый синтаксис: grep [pattern] [file...]. Параметр [pattern] — это искомый текст, а [file...] — файлы, в которых выполняется поиск.
`grep` для поиска простого текста
Создадим простой текстовый файл и воспользуемся grep, чтобы найти в нём слово. grep выведет каждую строку, содержащую шаблон.
cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "CoddyKit is fun." >> greeting.txt
grep "CoddyKit" greeting.txtПараметры `grep`: -i и -n
Два полезных параметра grep:
-i: игнорировать регистр при поиске.-n: показать номер строки, в которой найдено совпадение.
Найдём «coddykit» без учёта регистра и посмотрим номера строк.
cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "coddykit is fun." >> greeting.txt
grep -i -n "coddykit" greeting.txtОбъединение `find` и `grep`
Вы можете объединить find и grep, чтобы искать файлы *и* их содержимое. Параметр -exec команды find позволяет запускать другую команду для каждого найденного файла.
Здесь мы найдём все файлы .txt и выполним поиск «CoddyKit» внутри них.
cd /tmp
echo "Hello CoddyKit" > file1.txt
echo "Hello World" > file2.txt
echo "CoddyKit rocks" > file3.txt
find . -name "*.txt" -exec grep -l "CoddyKit" {} +Быстрая проверка
У Вас есть каталог с несколькими файлами. Какая команда найдёт все файлы с именем log.txt или error.log, размер которых превышает 50 KB?
Повторение: поиск файлов
Отличная работа! Вы научились эффективно искать файлы и их содержимое в Linux:
find: находит файлы и каталоги по различным критериям, например имени, типу и размеру.grep: ищет *внутри* файлов определённые текстовые шаблоны, поддерживая поиск без учёта регистра и вывод номеров строк.- Мы также увидели, как
findиgrepмогут работать вместе для эффективного поиска содержимого.
Продолжайте практиковаться с этими командами, чтобы освоить навигацию в Linux!
Часто задаваемые вопросы
Урок «Поиск файлов (find, grep)» бесплатный?
Да — полный текст урока «Поиск файлов (find, grep)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Command Line & Bash Scripting Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Поиск файлов (find, grep)»?
Откройте для себя мощные команды 'find' и 'grep' для поиска файлов и определённых текстовых шаблонов внутри файлов в системе. Ты практикуешь Linux Command Line & Bash Scripting Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Command Line & Bash Scripting Mastery?
Предыдущий опыт не требуется. Linux Command Line & Bash Scripting Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Поиск файлов (find, grep)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Command Line & Bash Scripting Mastery?
Да. Каждый урок Linux Command Line & Bash Scripting Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Просмотр содержимого файлов (cat, less, head, tail)
- Понимание прав доступа к файлам (chmod, chown)
- Поиск файлов (find, grep)
- Создание ссылок: жёсткие и символьные ссылки