Polecenie usunięcia wszystkich plików i folderów rekurencyjnie, w tym ukrytych, na terminalu MAC OS?


11

rm -rf * usunie wszystkie pliki i foldery, ale nie ukryte.

rm -rf .* usunie wszystkie ukryte pliki i foldery, ale nie te, które nie są ukryte, prawda?

Jakie polecenie należy wpisać, aby usunąć wszystkie pliki i foldery, w tym ukryte? (oprócz. i ..); ?

Odpowiedzi:


13
rm -rf * .*

da rade.


1
NIE! .*rozwinie się do wszystkich niewidocznych wpisów w bieżącym katalogu, w tym .. - co oznacza, że ​​użycie .*jako argumentu rm -rfspowoduje próbę usunięcia katalogu powyżej tego, w którym aktualnie się znajdujesz, oraz całej jego zawartości . rm odmówi, ale nie sądzę, aby polegać na tym sejfie ...
— Gordon Davisson

@Gordon Davisson: Utworzyłem katalog. Dodałem do niego pliki, w tym pliki ukryte. Wydałem to polecenie. Rekurencyjnie usunął całą zawartość tego katalogu i nie usunął żadnej zawartości POWYŻEJ tego katalogu. Czy możesz wyjaśnić swój komentarz?
— MEM,

Dziękujemy za wyjaśnienie powyższego komentarza. Teraz rozumiem twój punkt widzenia. Jakieś alternatywne sugestie?
— MEM

co powiesz na używanie findz -deleteflagą ...
— user1055604

1
@GordonDavisson rmpowinien rm: "." and ".." may not be removedw takim przypadku wydrukować komunikat - nie usunie automatycznie katalogu nadrzędnego.
— slhck

1

Spróbuj tego:

find . -mindepth 1 -delete

Nie jestem pewien, czy -mindepthsą obsługiwane przez wszystkie implementacje find; jeśli twój go nie ma, -pathpowinien dać inny sposób, aby powstrzymać go przed próbą usunięcia .:

find . -path "*/*" -delete

BSD też findma tę opcję, tak.
— slhck

1

Wystarczy użyć tego polecenia, aby wyczyścić pliki / katalogi według określonych kryteriów:

# tmpwatch -fauv 0 .

0

shopt -s dotglobpowoduje także *dołączanie plików rozpoczynających się kropką.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.