Jak szybko usunąć Pliki i katalogi za pomocą terminala (powłoka bash) [zamknięty]

Z okna terminala:

Kiedy używam polecenia rm może usuwać tylko pliki.
Gdy używam polecenia rmdir usuwa tylko puste foldery.

Jeśli mam katalog zagnieżdżony z plikami i folderami w folderach z plikami i tak dalej, Czy Jest jakiś sposób na usunięcie wszystkich plików i folderów bez forsownego wpisywania poleceń?

Jeśli to robi różnicę, używam powłoki Mac bash z terminala, a nie Microsoft DOS lub linux.

Author: baduker, 2010-04-15

4 answers

rm -rf some_dir

-r " rekurencyjny" -f " force "(tłumić komunikaty potwierdzające)

Uważaj!
 636
Author: Jim Lewis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-15 01:26:30
rm -rf *

Usunie wszystko (foldery i pliki) w bieżącym katalogu.

Ale uważaj! wykonaj to polecenie tylko wtedy, gdy jesteś absolutnie pewien, że znajdujesz się we właściwym katalogu.

 41
Author: Prine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-16 23:44:22

Tak, jest. Opcja -r mówi {[1] } jako R ecursywne i usuwa całą hierarchię plików zakorzenioną w jej argumentach; innymi słowy, jeśli dany katalog zostanie podany, usunie całą jego zawartość, a następnie wykona to, co jest efektywnie rmdir.

Pozostałe dwie opcje, które powinieneś znać, to -i i -f. -i oznacza i nteractive; sprawia, że rm wyświetla monit przed usunięciem KAŻDEGO pliku. -f oznacza f orce; idzie naprzód i usuwa wszystko bez pytania. -i jest bezpieczniejsze, ale -f jest szybsze; używaj go tylko wtedy, gdy jesteś absolutnie pewien} usuwasz właściwą rzecz. Możesz je określić za pomocą -r lub nie; jest to ustawienie niezależne.

I jak zwykle można łączyć przełączniki: rm -r -i to po prostu rm -ri, a rm -r -f to rm -rf.

Zauważ również, że to, czego się uczysz, dotyczy bash na każdym systemie uniksowym: OS X, Linux, FreeBSD itp. W rzeczywistości składnia rm jest taka sama w prawie każda powłoka na każdym uniksowym systemie operacyjnym. OS X, pod maską, to tak naprawdę system uniksowy BSD.

 11
Author: Antal Spector-Zabusky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-15 01:31:54

Więc szukałem wszędzie sposobu, aby usunąć wszystkie pliki w katalogu z wyjątkiem niektórych katalogów i plików, które chciałem zatrzymać. Po długich poszukiwaniach wymyśliłem sposób, aby to zrobić za pomocą find.

find -E . -regex './(dir1|dir2|dir3)' -and -type d -prune -o -print -exec rm -rf {} \;

Zasadniczo używa regex, aby wybrać katalogi do wykluczenia z wyników, a następnie usuwa pozostałe pliki. Chciałem to tu umieścić, gdyby ktoś inny tego potrzebował.

 2
Author: msantoro12,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-25 18:33:08