Android

Jak usunąć (usunąć) katalog w systemie Linux

Linux команда mkdir и команды создания файлов.

Linux команда mkdir и команды создания файлов.

Spisu treści:

Anonim

Istnieje kilka różnych sposobów usuwania katalogów w systemach Linux. Jeśli używasz menedżera plików na pulpicie, takiego jak Gnome's Files lub KDE's Dolphin, możesz usuwać pliki i katalogi za pomocą graficznego interfejsu użytkownika menedżera. Ale jeśli pracujesz na bezgłowym serwerze lub chcesz usunąć wiele katalogów jednocześnie, najlepszą opcją jest usunięcie katalogów (folderów) z wiersza poleceń.

, wyjaśnimy, jak usunąć katalogi w systemie Linux za pomocą komend rmdir , rm i find .

Zanim zaczniesz

Po usunięciu katalogu za pomocą menedżera plików na pulpicie katalog zostaje faktycznie przeniesiony do Kosza i można go łatwo odzyskać.

Zachowaj szczególną ostrożność podczas usuwania plików lub katalogów z wiersza poleceń, ponieważ po usunięciu katalogu za pomocą objaśnionych poleceń nie można go w pełni odzyskać.

W większości systemów plików Linux usunięcie katalogu wymaga uprawnień do zapisu w katalogu i jego zawartości. W przeciwnym razie pojawi się błąd „Operacja niedozwolona”.

Nazwy katalogów ze spacją muszą być poprzedzone odwrotnym ukośnikiem ( / ).

Usuwanie katalogów za pomocą rmdir

rmdir to narzędzie wiersza polecenia do usuwania pustych katalogów. Jest to przydatne, gdy chcesz usunąć katalog tylko wtedy, gdy jest pusty, bez konieczności sprawdzania, czy katalog jest pusty, czy nie.

Aby usunąć katalog za pomocą rmdir , wpisz polecenie, a następnie nazwę katalogu, który chcesz usunąć. Na przykład, aby usunąć katalog o nazwie dir1 , wpisz:

rmdir dir1

Jeśli katalog nie jest pusty, pojawi się następujący błąd:

rmdir: failed to remove 'dir1': No such file or directory

W takim przypadku musisz użyć polecenia rm lub ręcznie usunąć zawartość katalogu, zanim będziesz mógł ją usunąć.

Usuwanie katalogów za pomocą rm

rm to narzędzie wiersza polecenia do usuwania plików i katalogów. W przeciwieństwie do rmdir komenda rm może usuwać zarówno puste, jak i niepuste katalogi.

Domyślnie używany bez żadnej opcji rm nie usuwa katalogów. Aby usunąć pusty katalog, użyj opcji -d ( --dir ), a aby usunąć niepusty katalog i całą jego zawartość, użyj opcji -r ( --recursive lub -R ).

Na przykład, aby usunąć katalog o nazwie dir1 wraz z całą zawartością, wpisz:

rm -r dir1

Jeśli katalog lub plik w katalogu jest chroniony przed zapisem, pojawi się monit o potwierdzenie usunięcia. Aby usunąć katalog bez monitu, użyj opcji -f :

rm -rf dir1

Aby usunąć wiele katalogów jednocześnie, użyj polecenia rm a następnie nazw katalogów oddzielonych spacją. Poniższe polecenie usunie każdy wymieniony katalog i jego zawartość:

rm -r dir1 dir2 dir3

Opcja -i każe rm poprosić o potwierdzenie usunięcia każdego podkatalogu i pliku. Jeśli katalog zawiera wiele plików, może to być trochę irytujące, więc możesz rozważyć użycie opcji -I , która wyświetli monit tylko raz przed przystąpieniem do usuwania.

rm -rI dir1

Aby usunąć katalog, wpisz y i naciśnij Enter .

rm: remove 1 argument recursively? y

Możesz także użyć zwykłych rozszerzeń, aby dopasować i usunąć wiele katalogów. Na przykład, aby usunąć wszystkie katalogi pierwszego poziomu w bieżącym katalogu, który kończy się na _bak , należy użyć następującego polecenia:

rm -r *_bak

Korzystanie z regularnych rozszerzeń podczas usuwania katalogów może być ryzykowne. Zaleca się, aby najpierw wyświetlić katalogi za pomocą polecenia ls , aby można było zobaczyć, które katalogi zostaną usunięte przed uruchomieniem polecenia rm .

Usuwanie katalogów za pomocą funkcji find

find to narzędzie wiersza polecenia, które pozwala wyszukiwać pliki i katalogi na podstawie danego wyrażenia i wykonywać działania na każdym dopasowanym pliku lub katalogu.

Najczęstszym scenariuszem jest użycie polecenia find do usunięcia katalogów na podstawie wzorca. Na przykład, aby usunąć wszystkie katalogi, które kończą się _cache w bieżącym katalogu roboczym, należy uruchomić:

find. -type d -name '*_cache' -exec rm -r {} +

Przeanalizujmy powyższe polecenie:

  • /dir - wyszukiwanie rekurencyjne w bieżącym katalogu roboczym ( . ). -type d - ogranicza wyszukiwanie do katalogów. -name '*_cache' - wyszukuje tylko katalogi, które kończą się na _cache -exec - wykonuje zewnętrzne polecenie z opcjonalnymi argumentami, w tym przypadku jest to rm -r . {} + - dołącza znalezione pliki na końcu polecenia rm .

Usuwanie wszystkich pustych katalogów

Aby usunąć wszystkie puste katalogi z drzewa katalogów, należy użyć:

find /dir -type d -empty -delete

Oto wyjaśnienie używanych opcji:

  • /dir - wyszukiwanie rekurencyjne w katalogu /dir . -type d - ogranicza wyszukiwanie do katalogów. -empty - ogranicza wyszukiwanie tylko do pustych katalogów. -delete - usuwa wszystkie znalezione puste katalogi w poddrzewie. -delete może usunąć tylko puste katalogi.

-delete opcją -delete należy zachować szczególną ostrożność. Wiersz polecenia Znajdź jest oceniany jako wyrażenie i jeśli najpierw dodasz opcję -delete , polecenie usunie wszystko poniżej określonych punktów początkowych. Zawsze używaj opcji -delete jako ostatniej opcji, a przed usunięciem przetestuj najpierw komendę bez opcji -delete .

/ bin / rm: lista argumentów jest za długa

Ten komunikat o błędzie pojawia się, gdy usuwasz katalog zawierający ogromną liczbę plików za pomocą polecenia rm . Dzieje się tak, ponieważ liczba plików jest większa niż systemowy limit wielkości argumentu wiersza poleceń.

Istnieje kilka różnych rozwiązań tego problemu. Na przykład można cd do katalogu i ręcznie lub za pomocą pętli, aby usunąć podkatalogi jeden po drugim.

Najłatwiejszym rozwiązaniem jest usunięcie wszystkich plików w katalogu za pomocą polecenia find a następnie usunięcie katalogu:

find /dir -type f -delete && rm -r /dir

Wniosek

Za pomocą rm i find możesz szybko i wydajnie usuwać katalogi na podstawie różnych kryteriów.

Usuwanie katalogów jest prostym i łatwym procesem, ale należy zachować ostrożność, aby nie usunąć ważnych danych.

rm rmdir znajdź terminal