Создание папки резервного копирования
Часть раздела Основы путешествия по Terminal на Coddy. Урок 76 из 82.
Задание
ЛегкоТеперь давайте расширим скрипт резервного копирования, чтобы создать папку бэкапа, где будут храниться файлы.
Перепишите backup.sh с нуля, чтобы он содержал полный обновленный скрипт. Используйте > для первой строки, чтобы перезаписать файл, а затем >> для добавления каждой последующей строки:
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
echo 'backup_dir="backup"' >> backup.sh
echo 'mkdir -p "$backup_dir"' >> backup.sh
echo 'echo "Created backup folder: $backup_dir"' >> backup.shКаждая строка заключена в одинарные кавычки, чтобы оболочка записывала $source_dir и $backup_dir в файл буквально, не заменяя их значениями.
Затем сделайте его исполняемым:
chmod +x backup.shНаконец, запустите скрипт с documents в качестве входного значения. Этот терминал не является интерактивным, поэтому передайте ответ через пайп в скрипт вместо ожидания запроса:
echo "documents" | ./backup.shВаш вывод должен быть следующим:
Backing up: documents
Created backup folder: backupУбедитесь, что папка была создана, выполнив ls для просмотра содержимого каталога. В выводе должна отображаться новая папка backup рядом с другими вашими файлами.
Подсказка: Флаг
-pвmkdir -pпредотвращает ошибки, если директория уже существует. Обязательно используйте кавычки вокруг ваших переменных (например,"$backup_dir") для безопасной работы с ними.
Попробуйте сами
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
chmod +x backup.sh
echo "documents" | ./backup.shВсе уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данныхПотренируйтесь самостоятельно: Песочница Terminal