Menu
Coddy logo textTech

Добавление временной метки

Часть раздела Основы путешествия по Terminal на Coddy — урок 78 из 82.

challenge icon

Задание

Легко

Давайте сделаем имя папки резервного копирования уникальным, добавив метку времени. Таким образом, каждая резервная копия будет создавать новую папку вместо перезаписи предыдущей.

Измените backup.sh, чтобы:

  1. Сохранить весь существующий код из предыдущего урока
  2. Заменить статическое имя backup_dir="backup" на динамическое имя, включающее метку времени
  3. Использовать подстановку команд с командой date для генерации метки времени в формате YYYYMMDD_HHMMSS
  4. Папка резервного копирования должна называться: backup_[timestamp]

Команда date со спецификаторами формата создает метки времени:

date +%Y%m%d_%H%M%S

Используйте подстановку команд $(command), чтобы сохранить этот вывод в переменной:

timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"

Запустите скрипт и введите documents при появлении запроса. Ваш вывод должен выглядеть примерно так:

Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfully

Метка времени в вашем выводе будет отличаться в зависимости от текущей даты и времени.

Подсказка: Добавьте timestamp=$(date +%Y%m%d_%H%M%S) перед определением backup_dir, затем используйте backup_dir="backup_$timestamp" для создания динамического имени папки.

Попробуйте сами

Терминал
cat > backup.sh << 'EOF'
#!/bin/bash
read -p "Enter source directory: " source_dir
echo "Backing up: $source_dir"
backup_dir="backup"
mkdir -p "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$source_dir"/* "$backup_dir"
echo "Files copied successfully"
EOF
echo "documents" | bash backup.sh
ls backup

Все уроки раздела Основы