Menambahkan Timestamp
Termasuk bagian Dasar-Dasar dalam perjalanan Terminal di Coddy. Pelajaran 78 dari 82.
Tantangan
MudahMari buat nama folder cadangan yang unik dengan menambahkan stempel waktu. Dengan begitu, setiap pencadangan membuat folder baru dan tidak menimpa folder sebelumnya.
Tulis ulang backup.sh agar berisi skrip lengkap yang sudah diperbarui (jalankan cat backup.sh untuk melihat versi dari pelajaran sebelumnya):
- Pertahankan semua baris lain dari skrip pelajaran sebelumnya
- Ganti
backup_dir="backup"yang statis dengan nama dinamis yang menyertakan stempel waktu - Gunakan substitusi perintah dengan perintah
dateuntuk membuat stempel waktu dalam formatYYYYMMDD_HHMMSS - Nama folder cadangan harus berupa:
backup_[timestamp]
Perintah date dengan penentu format menghasilkan 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
echountuk setiap baris bisa dilakukan, tetapi ada cara yang lebih singkat: *here document* mengirimkan semua isi hingga kata penutup langsung ke dalam file.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFTanda kutip di sekitar
'EOF'mencegah$variablesdiekspansi saat file ditulis. Inilah 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 pada 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 yang dinamis.
Coba sendiri
echo 'cp "$source_dir"/* "$backup_dir"' >> backup.sh
echo 'echo "Files copied successfully"' >> backup.sh
echo "documents" | bash backup.sh
ls backupSemua pelajaran di Dasar-Dasar
4Direktori
Buat DirektoriSalin DirektoriPindahkan dan Ganti Nama DirektoriHapus DirektoriUlasan: Operasi Direktori7Isi File
Perintah head dan tailJumlah KataPerintah sortPerintah uniqueDasar-dasar grepgrep dengan FlagUlasan: Detektif Teks10Proyek Analisis Log
Ikhtisar ProyekMelihat File Log2Navigasi
Tampilkan Direktori KerjaTampilkan Daftar FileGanti DirektoriJalur Absolut vs RelatifDirektori Home dan RootRingkasan: Temukan Arahmu8Pengalihan
Keluaran StandarTimpa FileTambahkan ke FileMasukan StandarStandard ErrorRangkuman: Pembuat Log11Izin Akses
Memahami Izin AksesMembaca Izin AksesChmod dengan AngkaChmod dengan SimbolKepemilikan FileUlasan: Amankan Akses14Proyek Skrip Cadangan
Ikhtisar ProyekMendapatkan Path Sumber6Wildcard dan Pola
Wildcard BintangWildcard Tanda TanyaWildcard Kurung SikuMenggabungkan WildcardUlasan: Operasi Selektif9Penggunaan Pipe
Apa Itu PipeMerangkai Dua PerintahMerangkai Beberapa PerintahPipe dengan GrepRingkasan: Pipeline DataLatihan sendiri: Playground Terminal