Z okna terminala:
Kiedy używam rm
polecenia, może on tylko usuwać pliki.
Kiedy używam rmdir
polecenia, usuwa tylko puste foldery.
Jeśli mam katalog zagnieżdżony z plikami i folderami w folderach z plikami i tak dalej, czy istnieje jakiś sposób, aby usunąć wszystkie pliki i foldery bez wszystkich męczących poleceń?
Jeśli to robi różnicę, używam powłoki mac bash z terminala, a nie Microsoft DOS lub Linux.
Odpowiedzi:
-r „rekurencyjna” -f „wymusza” (pomija komunikaty potwierdzające)
Bądź ostrożny!
źródło
brew install trash
następnietrash -rf some_dir
Spowoduje to przeniesienie niechcianego katalogu do kosza zamiast znikania stylu Prestige w eterze. ( źródło )Usuwałby wszystko (foldery i pliki) z bieżącego katalogu.
Ale bądź ostrożny! Wykonaj to polecenie tylko wtedy, gdy masz absolutną pewność, że znajdujesz się we właściwym katalogu.
źródło
ls -R *
aby zobaczyć, co zostanie usunięterm -rf *
Tak jest.
-r
Rozwiązaniem opowiadarm
się R ecursive i usunąć całą hierarchię zakorzenionego w jego argumentacji; innymi słowy, jeśli otrzyma katalog, usunie całą jego zawartość, a następnie wykona to, co faktycznie jestrmdir
.Pozostałe dwie opcje, które powinieneś znać to
-i
i-f
.-i
oznacza i nteractive; wyświetlarm
monit o usunięcie każdego pliku.-f
oznacza f Orce; idzie dalej i usuwa wszystko bez pytania.-i
jest bezpieczniejszy, ale-f
szybszy; używaj go tylko wtedy, gdy masz absolutną pewność, że usuwasz właściwą rzecz. Możesz określić je za pomocą-r
lub nie; to niezależne ustawienie.I jak zwykle możesz łączyć przełączniki:
rm -r -i
jest po prosturm -ri
irm -r -f
jestrm -rf
.Zauważ też, że to, czego się uczysz, dotyczy
bash
każdego systemu operacyjnego Unix: OS X, Linux, FreeBSD itp. W rzeczywistościrm
składnia jest taka sama w prawie każdej powłoce w każdym systemie operacyjnym Unix. OS X, pod maską, to naprawdę system uniksowy BSD.źródło
"rm -d"
, który usuwa pliki lub puste katalogi. Mimo to +1 za to, że OS X jest wewnętrznie BSD.Więc szukałem sposobu na usunięcie wszystkich plików w katalogu oprócz niektórych katalogów i plików, które chciałem zachować. Po wielu poszukiwaniach wymyśliłem sposób, aby to zrobić za pomocą funkcji find.
Zasadniczo używa wyrażenia regularnego, aby wybrać katalogi do wykluczenia z wyników, a następnie usuwa pozostałe pliki. Chciałem go tutaj umieścić, na wypadek, gdyby ktoś inny tego potrzebował.
źródło