Menambahkan Timestamp
Termasuk bagian Dasar-Dasar dalam perjalanan Terminal di Coddy. Pelajaran 78 dari 82.
Tantangan
MudahMari buat nama folder cadangan menjadi unik dengan menambahkan stempel waktu. Dengan begitu, setiap pencadangan membuat folder baru alih-alih menimpa folder sebelumnya.
Ubah backup.sh agar:
- Tetap menggunakan semua kode yang sudah ada dari pelajaran sebelumnya
- Ganti
backup_dir="backup"yang statis dengan nama dinamis yang menyertakan stempel waktu - Gunakan substitusi perintah dengan perintah
dateuntuk membuat stempel waktu dengan formatYYYYMMDD_HHMMSS - Nama folder cadangan harus berupa:
backup_[timestamp]
Perintah date dengan penentu format akan membuat stempel waktu:
date +%Y%m%d_%H%M%SGunakan substitusi perintah $(command) untuk menyimpan output ini dalam variabel:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Menulis skrip beberapa baris dengan satu
echoper baris bisa dilakukan, tetapi ada cara yang lebih singkat: *here document* mengalirkan semua isi hingga kata penutup langsung ke dalam file.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFTanda kutip di sekitar
'EOF'mencegah$variablesdievaluasi saat file ditulis. Ini yang kamu inginkan ketika skrip itu sendiri menggunakannya.
Jalankan skrip dengan documents sebagai input (echo "documents" | bash backup.sh). Outputmu seharusnya terlihat seperti ini:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyStempel waktu di outputmu akan berbeda, bergantung pada tanggal dan waktu saat ini.
Petunjuk: Tambahkan
timestamp=$(date +%Y%m%d_%H%M%S)sebelum mendefinisikanbackup_dir, lalu gunakanbackup_dir="backup_$timestamp"untuk membuat nama folder dinamis.
Coba sendiri
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 backupSemua pelajaran di Dasar-Dasar
4Direktori
Buat DirektoriSalin DirektoriPindahkan dan Ganti Nama DirektoriHapus DirektoriRingkasan: Operasi Direktori7Isi File
Head dan TailJumlah KataPerintah SortPerintah UniqueDasar-Dasar GrepGrep dengan FlagUlasan: Detektif Teks10Proyek Penganalisis Log
Gambaran Umum ProyekMelihat File Log2Navigasi
Tampilkan Direktori KerjaLihat Daftar FileGanti DirektoriJalur Absolut vs RelatifDirektori Home dan RootRingkasan: Temukan Arahmu8Pengalihan
Output StandarMenimpa FileMenambahkan ke FileInput StandarError StandarRangkuman: Pembuat Log11Izin
Memahami IzinMembaca IzinChmod dengan AngkaChmod dengan SimbolKepemilikan FileRingkasan: Amankan File14Proyek Skrip Pencadangan
Ikhtisar ProyekMendapatkan Jalur Sumber6Wildcard dan Pola
Wildcard Tanda BintangWildcard Tanda TanyaWildcard Tanda Kurung SikuMenggabungkan WildcardRangkuman: Operasi Selektif9Penggunaan Pipe
Apa Itu PipeMenghubungkan Dua PerintahMenghubungkan Beberapa PerintahPipe dengan grepRingkasan: Pipeline DataLatihan sendiri: Playground Terminal