Занятие 15. find, locate, циклы в bash
⚡ Кратко: суть темы
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
📚 Что повторить перед изучением
- ← Занятие 14: Summary Session 6 — повторение bash-скриптов и Git basics
- Занятие 12: Права доступа и bash-скрипт — shebang, переменные, chmod +x, запуск скрипта
- Занятие 10: Переменные, процессы — ps, grep, wc, awk используются в ДЗ