Занятие 15. find, locate, циклы в bash

📁 Блок: Основы Linux ⏱️ Время изучения: ~60 мин 🎯 Сложность: Средняя
#linux #find #locate #bash #циклы #for #while

⚡ Кратко: суть темы

find — поиск файлов в реальной файловой системе по критериям: имени, типу, размеру, дате. locate — поиск по предварительно построенной базе данных (быстрее, но данные могут быть устаревшими; обновить: sudo updatedb). Циклы bash: for i in {1..5}; do ...; done — для каждого элемента диапазона; while [ $counter -le 5 ]; do ...; done — пока условие верно.

  • Поиск по имени: find /path -name "*.txt"
  • Поиск по типу: find /path -type f (f=файл, d=директория)
  • Поиск по размеру: find /path -size +1M
  • Поиск по дате: find /path -mtime -5 (изменено за последние 5 дней)
  • Удаление найденных: find /path -name "*.old" -delete
  • Выполнить действие: find /path -type f -exec chmod 644 {} \;
  • locate (быстро): locate myfile.txt; обновить базу: sudo updatedb
  • Цикл for: for i in {1..5}; do echo "Number: $i"; done
  • Цикл while: while [ $counter -le 5 ]; do echo $counter; ((counter++)); done

📖 О чём этот урок

Два инструмента поиска файлов в Linux: find (работает в реальной файловой системе, умеет фильтровать по множеству критериев и сразу выполнять действия) и locate (работает по кешированной базе данных — быстрее, но требует регулярного обновления через sudo updatedb). Плюс ключевой инструмент автоматизации — циклы bash: for и while.

Что изучим

  • Команда find: критерии -name, -type, -size, -mtime; действия -delete, -exec
  • Команда locate: поиск по базе данных; sudo updatedb
  • Цикл for i in {1..5}; do ... done
  • Цикл while [ $counter -le 5 ]; do ... done
  • Бесконечный цикл: while true; do echo "Alive" && sleep 1; done
  • Практический скрипт: создание файлов по дате, копирование, вывод через cat
  • ДЗ: myfirstbashscript.sh с date, echo, pwd, ps+grep+wc, awk

📚 Что повторить перед изучением

🎯 Что изучать дальше