Jeśli Twoim celem jest wykonanie polecenia jednowierszowego, które:
- Usuwa i odtwarza katalog,
~/Desktop/foojeśli już istnieje.
- Po prostu tworzy katalog,
~/Desktop/foojeśli jeszcze nie istnieje.
Następnie możesz użyć:
rm -r ~/Desktop/foo; mkdir ~/Desktop/foo
; jest równoważny nowej linii, ale umożliwia wykonywanie wielu poleceń w jednym wierszu (tj. jako „pojedyncze polecenie”).
- Jeśli usuwany katalog może zawierać tylko do odczytu pliki, będziesz potrzebować
-fflagi, aby je usunąć bez monitowania użytkownika interaktywnie. Jest w porządku, ale zalecam zachowanie szczególnej ostrożności rm -rf .... Zobacz man rmszczegóły.
- Potrzebujesz
rmpolecenia, aby zakończyć, zanim mkdirpolecenie zostanie wykonane; to jest powód, aby użyć ;zamiast &. (Polecenie poprzedzające &działa asynchronicznie w tle).
- Potrzebujesz
mkdirkomendy do uruchomienia, gdy rmkomenda się powiedzie; to jest powód, aby użyć ;zamiast ||.
- Musisz uruchomić
mkdirpolecenie, gdy rmpolecenie się nie powiedzie (zwykle błąd oznacza, że katalog jeszcze nie istniał); to jest powód, aby użyć ;zamiast &&.
rmPolecenie może zawieść nawet gdy katalog już istnieje, w którym to przypadku mkdirkomenda nie powiedzie się również, ale komunikaty o błędach będzie sensu i nie ma chyba potrzeby dodawać środkowy sprawdzanie krok do foo„s istnienia przed próbuje go utworzyć.
Zobacz 3.2.3 listy poleceń w podręczniku Reference Bash więcej informacji i wyjaśnień na temat ;, &, ||oraz &&operatorów.
Zgodnie z sugestią Muru (i rozwiniętą przez Rinzwind ), polecamrsync sprawdzić, czy spełni twoje potrzeby tworzenia kopii zapasowych. Na stronie dokumentacji rsync znajduje się kilka dodatkowych przydatnych przewodników , a także ten przewodnik Ubuntu rsync .
dlaczego mkdir nie ma tej opcji?
mkdirtworzy katalogi („mk” oznacza „make” ). Gdyby również rekurencyjnie usuwać katalogi i wszystkie pliki w nich byłyby złe, ponieważ naruszałoby to zasadę najmniejszego zdziwienia w sposób, który prawdopodobnie prowadziłby do utraty danych.
rmdirnawet nie usuwa katalogów, które zawierają pliki (inne niż katalog). rmma -ropcję, która ma sens, ponieważ rmoczekuje się, że usunie pliki (to jest jej cel, dlatego nieodłączne niebezpieczeństwo jest intuicyjne, a użytkownicy zwykle wiedzą, że należy zachować ostrożność podczas uruchamiania rmpoleceń).
foojak usunąć całą zawartość?mkdirma-popcję, która ignoruje, jeśli katalog istnieje.