0Pricing
DevOps Bootcamp · Урок

Поиск файлов (find, grep)

Откройте для себя мощные команды 'find' и 'grep' для поиска файлов и определённых текстовых шаблонов внутри файлов в системе.

«Поиск файлов (find, grep)» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 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 KB
  • 100c: ровно 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) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Поиск файлов (find, grep)»?

Откройте для себя мощные команды 'find' и 'grep' для поиска файлов и определённых текстовых шаблонов внутри файлов в системе. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Поиск файлов (find, grep)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Просмотр содержимого файлов (cat, less, head, tail)
  2. Понимание прав доступа к файлам (chmod, chown)
  3. Поиск файлов (find, grep)
  4. Создание ссылок: жёсткие и символьные ссылки
← Назад к DevOps Bootcamp