タイムスタンプの追加
CoddyのTerminalジャーニー「基礎」セクションの一部。レッスン 78/82。
チャレンジ
簡単タイムスタンプを追加して、バックアップフォルダ名を一意にしましょう。これにより、各バックアップは前のフォルダを上書きするのではなく、新しいフォルダを作成するようになります。
backup.sh を次のように変更します:
- 前のレッスンからの既存のコードをすべて維持します
- 静的な
backup_dir="backup"を、タイムスタンプを含む動的な名前に置き換えます dateコマンドによるコマンド置換を使用して、YYYYMMDD_HHMMSS形式のタイムスタンプを生成します- バックアップフォルダの名前は次のようにします:
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出力内のタイムスタンプは、現在の日時によって異なります。
ヒント:
backup_dirを定義する前にtimestamp=$(date +%Y%m%d_%H%M%S)を追加し、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基礎のすべてのレッスン
自分で練習してみよう: Terminalプレイグラウンド