Создание папки резервного копирования
Часть раздела Основы путешествия по Terminal на Coddy — урок 76 из 82.
Задание
ЛегкоТеперь давайте расширим скрипт резервного копирования, чтобы он создавал папку `backup`, в которой будут храниться файлы.
Перезапишите 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Итог - Конвейер данных