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.