Czy twój rmdir działa, jeśli w podkatalogu są pliki?
Jeff Schaller
1
Zobacz także tytułowe wywołanie systemowe, rmdir(2)które może usuwać tylko puste katalogi.
David Foerster,
4
Nawiasem mówiąc, istnieje „poprawna” procedura używania rm -r: (1) Wpisz polecenie, ale go nie wprowadzaj (2) Oderwij ręce od klawiatury (3) Policz do pięciu (4) Naciśnij ENTER. Zacząłem robić coś takiego ze wszystkimi niebezpiecznymi poleceniami, aby dać mi szansę spojrzeć na to, co robię, upewnić się, że wpisałem wszystko poprawnie, pomyśleć o ewentualnych nieoczekiwanych konsekwencjach itp. Czasami prowadzi mnie to aby na przykład usunąć moje polecenie i najpierw wykonać dodatkowe kontrole.
ajb
3
@ajb rm -rf ~ /*- wyczyść mój katalog domowy. Lub poczekaj, może wyczyść system. Zawsze dobrze sprawdzić dwukrotnie;).
Tom Carpenter,
1
@ajb Zauważ, że rmdiri rm -rsą to dwa ciągi o tej samej długości :-)
Kusalananda
Odpowiedzi:
14
rm -rusuwa katalog i całą jego zawartość; rmdirusunie katalog tylko wtedy, gdy katalog jest pusty. Lubię używać następujących elementów do usunięcia katalogu i całej jego zawartości:
Pamiętaj, że zwykle nie powinieneś używać, -fjeśli nie musisz. Jest przydatny do użycia za -rfkażdym razem, ale wyłącza (prawie) wszystkie kontrole bezpieczeństwa.
allo
5
-1 za niepotrzebne zalecenie -fflagi rm, które może mieć nieprzewidywalne, nieodwracalne konsekwencje
kot
Więc rmdirjest po prostu rm -d?
Stan Strum,
@StanStrum -dnie jest standardową opcją dla rm.
Kusalananda
@cat The rmkomendy w ogóle mogą mieć te konsekwencje. -fFlaga jest przydatna podczas pracy pod set -ew skrypcie. Zgadzam się, że używanie bez myślenia jest niepotrzebne .
Kusalananda
1
Powinieneś użyć, rm -rjeśli chcesz rekurencyjnie usunąć katalog i całą jego zawartość, lub gdy celem może być katalog lub plik i chcesz go usunąć bez względu na to, co to jest.
rmdirPolecenie jest użyteczne, ponieważ nie chce usuwać niepuste katalogi i pliki. Służy to jako zabezpieczenie w sytuacjach, w których możesz być absolutnie pewien, że to, co usuwasz, jest katalogiem i że katalog jest pusty przed usunięciem (na przykład w skrypcie) i chcesz traktować go jako warunek błędu Inaczej.
rmdir(2)
które może usuwać tylko puste katalogi.rm -r
: (1) Wpisz polecenie, ale go nie wprowadzaj (2) Oderwij ręce od klawiatury (3) Policz do pięciu (4) Naciśnij ENTER. Zacząłem robić coś takiego ze wszystkimi niebezpiecznymi poleceniami, aby dać mi szansę spojrzeć na to, co robię, upewnić się, że wpisałem wszystko poprawnie, pomyśleć o ewentualnych nieoczekiwanych konsekwencjach itp. Czasami prowadzi mnie to aby na przykład usunąć moje polecenie i najpierw wykonać dodatkowe kontrole.rm -rf ~ /*
- wyczyść mój katalog domowy. Lub poczekaj, może wyczyść system. Zawsze dobrze sprawdzić dwukrotnie;).rmdir
irm -r
są to dwa ciągi o tej samej długości :-)Odpowiedzi:
rm -r
usuwa katalog i całą jego zawartość;rmdir
usunie katalog tylko wtedy, gdy katalog jest pusty. Lubię używać następujących elementów do usunięcia katalogu i całej jego zawartości:źródło
-f
jeśli nie musisz. Jest przydatny do użycia za-rf
każdym razem, ale wyłącza (prawie) wszystkie kontrole bezpieczeństwa.-f
flagi rm, które może mieć nieprzewidywalne, nieodwracalne konsekwencjermdir
jest po prosturm -d
?-d
nie jest standardową opcją dlarm
.rm
komendy w ogóle mogą mieć te konsekwencje.-f
Flaga jest przydatna podczas pracy podset -e
w skrypcie. Zgadzam się, że używanie bez myślenia jest niepotrzebne .Powinieneś użyć,
rm -r
jeśli chcesz rekurencyjnie usunąć katalog i całą jego zawartość, lub gdy celem może być katalog lub plik i chcesz go usunąć bez względu na to, co to jest.Powinieneś użyć,
rmdir
gdy chcesz usunąć pusty katalog.rmdir
Polecenie jest użyteczne, ponieważ nie chce usuwać niepuste katalogi i pliki. Służy to jako zabezpieczenie w sytuacjach, w których możesz być absolutnie pewien, że to, co usuwasz, jest katalogiem i że katalog jest pusty przed usunięciem (na przykład w skrypcie) i chcesz traktować go jako warunek błędu Inaczej.źródło