Zaman Damgası Ekleme
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası. Ders 78 / 82.
Görev
KolayYedek klasörünün adını bir zaman damgası ekleyerek benzersiz hâle getirelim. Böylece her yedekleme, öncekinin üzerine yazmak yerine yeni bir klasör oluşturur.
backup.sh dosyasını şu şekilde değiştir:
- Önceki dersteki mevcut kodun tamamını koru
- Statik
backup_dir="backup"değerini, zaman damgası içeren dinamik bir adla değiştir datekomutuyla komut ikamesini kullanarakYYYYMMDD_HHMMSSbiçiminde bir zaman damgası oluştur- Yedek klasörünün adı şu şekilde olmalıdır:
backup_[timestamp]
Biçim belirleyicileriyle birlikte kullanılan date komutu zaman damgaları oluşturur:
date +%Y%m%d_%H%M%SBu çıktıyı bir değişkende yakalamak için $(command) komut ikamesini kullan:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Her satır için bir
echokullanarak çok satırlı bir betik yazmak işe yarar, ancak daha kısa bir yol vardır: here document, kapanış sözcüğüne kadar olan her şeyi doğrudan dosyaya aktarır.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOF
'EOF'çevresindeki tırnaklar, dosya yazılırken$variablesifadesinin genişletilmesini engeller; betiğin kendisi bunları kullandığında istediğin de budur.
Betikni girdi olarak documents ile çalıştır (echo "documents" | bash backup.sh). Çıktın şöyle görünmelidir:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyÇıktındaki zaman damgası, geçerli tarih ve saate bağlı olarak farklı olacaktır.
İpucu:
backup_dirtanımlanmadan öncetimestamp=$(date +%Y%m%d_%H%M%S)satırını ekle, ardından dinamik klasör adını oluşturmak içinbackup_dir="backup_$timestamp"kullan.
Kendin dene
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 backupTemeller bölümündeki tüm dersler
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu11İzinler
İzinleri Anlamaİzinleri OkumaChmod RakamlarlaChmod SembollerleDosya SahipliğiÖzet - Kilitle14Yedekleme Betiği Projesi
Proje Genel BakışıKaynak Yolu Alma3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru HattıKendi başına pratik yap: Terminal playground