Dodawanie znacznika czasu
Część sekcji Podstawy ścieżki Terminal w Coddy. Lekcja 78 z 82.
Wyzwanie
ŁatwyUtwórzmy unikalną nazwę folderu kopii zapasowej, dodając znacznik czasu. Dzięki temu każda kopia zapasowa będzie tworzyć nowy folder zamiast nadpisywać poprzedni.
Zmodyfikuj backup.sh, aby:
- Zachować cały istniejący kod z poprzedniej lekcji
- Zastąpić statyczne
backup_dir="backup"dynamiczną nazwą zawierającą znacznik czasu - Użyć podstawiania polecenia z poleceniem
date, aby wygenerować znacznik czasu w formacieYYYYMMDD_HHMMSS - Nazwać folder kopii zapasowej:
backup_[timestamp]
Polecenie date ze specyfikatorami formatu tworzy znaczniki czasu:
date +%Y%m%d_%H%M%SUżyj podstawiania polecenia $(command), aby zapisać ten wynik w zmiennej:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Zapisanie wielowierszowego skryptu za pomocą jednego
echow każdym wierszu działa, ale istnieje krótszy sposób: dokument here przekazuje do pliku całą zawartość aż do słowa zamykającego.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFCudzysłowy wokół
'EOF'zapobiegają rozwinięciu$variablespodczas zapisywania pliku, czego właśnie potrzebujesz, gdy skrypt używa tych zmiennych.
Uruchom skrypt, podając documents jako dane wejściowe (echo "documents" | bash backup.sh). Wynik powinien wyglądać tak:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyZnacznik czasu w wyniku będzie inny, zależnie od aktualnej daty i godziny.
Podpowiedź: Dodaj
timestamp=$(date +%Y%m%d_%H%M%S)przed zdefiniowaniembackup_dir, a następnie użyjbackup_dir="backup_$timestamp", aby utworzyć dynamiczną nazwę folderu.
Spróbuj swoich sił
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 backupWszystkie lekcje w sekcji Podstawy
4Katalogi
Utwórz katalogSkopiuj katalogPrzenieś i zmień nazwę kataloguUsuń katalogPodsumowanie — operacje na katalogach7Zawartość plików
Początek i koniecLiczba słówPolecenie sortPolecenie uniqPodstawy grepgrep z opcjamiPowtórka – detektyw tekstu10Projekt analizatora logów
Przegląd projektuPrzeglądanie pliku logów2Nawigacja
Wyświetlanie bieżącego kataloguWyświetlanie plikówZmiana kataloguŚcieżki bezwzględne i względneKatalog domowy i głównyPowtórka — znajdź drogę8Przekierowywanie
Standardowe wyjścieNadpisywanie plikuDopisywanie do plikuStandardowe wejścieStandardowe wyjście błędówPodsumowanie — tworzenie dziennika11Uprawnienia
Zrozumienie uprawnieńOdczytywanie uprawnieńChmod za pomocą liczbChmod za pomocą symboliWłasność plikówPodsumowanie — zablokuj dostęp14Projekt skryptu kopii zapasowej
Omówienie projektuPobieranie ścieżki źródłowej3Pliki
Utwórz plikOdczytaj plikSkopiuj plikPrzenieś i zmień nazwę plikuUsuń plikPodsumowanie — operacje na plikach6Symbole wieloznaczne i wzorce
Symbol wieloznaczny gwiazdkaSymbol wieloznaczny znak zapytaniaSymbole wieloznaczne w nawiasachŁączenie symboli wieloznacznychPowtórka — operacje selektywne9Potoki
Czym jest potokŁączenie dwóch poleceńŁączenie wielu poleceńPotok z grepPodsumowanie – potok danychPoćwicz samodzielnie: Edytor online Terminal