Jak usunąć pliki i katalogi w terminalu Linux

Polecenia rm i rmdir służą do usuwania plików i katalogów w systemach Linux, macOS oraz innych systemach operacyjnych typu Unix. Są one podobne do poleceń del i deltree w systemach Windows i DOS. Te polecenia są bardzo potężne i oferują wiele opcji.

Warto pamiętać, że pliki i katalogi usunięte za pomocą rm i rmdir nie trafiają do Kosza. Zostają natychmiast usunięte z komputera. W przypadku przypadkowego usunięcia plików, jedynym sposobem na ich przywrócenie jest posiadanie kopii zapasowej.

Jak usunąć pliki za pomocą rm

Najprostszym przypadkiem jest usunięcie pojedynczego pliku z bieżącego katalogu. Wpisz polecenie rm, spację, a następnie nazwę pliku, który chcesz usunąć:

rm file_1.txt

Jeśli plik nie znajduje się w bieżącym katalogu roboczym, podaj ścieżkę do lokalizacji pliku:

rm ./path/to/the/file/file_1.txt

Możesz także przekazać więcej niż jedną nazwę pliku do rm, co spowoduje usunięcie wszystkich wskazanych plików:

rm file_2.txt file_3.txt

Do wybierania grup plików do usunięcia można używać symboli wieloznacznych. Symbol * reprezentuje wiele znaków, a znak ? reprezentuje pojedynczy znak. Na przykład, to polecenie usunie wszystkie pliki obrazów PNG w bieżącym katalogu roboczym:

rm *.png

To polecenie usunie wszystkie pliki, które mają rozszerzenie składające się z jednego znaku. Na przykład, spowoduje to usunięcie Plik.1 i Plik.2, ale nie Plik.12:

rm *.?

Jeśli plik jest chroniony przed zapisem, wyświetli się monit przed jego usunięciem. Musisz odpowiedzieć t (tak) lub n (nie) i nacisnąć „Enter”.

Aby zredukować ryzyko użycia rm z symbolami wieloznacznymi, użyj opcji -i (interaktywna). Wymaga to potwierdzenia usunięcia każdego pliku:

rm -i *.dat

Opcja -f (siła) jest przeciwieństwem interakcji. Nie wyświetla monitu o potwierdzenie, nawet jeśli pliki są chronione przed zapisem:

rm -f filename

Jak usunąć katalogi za pomocą rm

Aby usunąć pusty katalog, użyj opcji -d (katalog). Można używać symboli wieloznacznych (* i ?) w nazwach katalogów, tak samo jak w nazwach plików:

rm -d directory

Podanie więcej niż jednej nazwy katalogu spowoduje usunięcie wszystkich wskazanych pustych katalogów:

rm -d directory1 directory2 /path/to/directory3

Aby usunąć katalogi, które nie są puste, użyj opcji -r (rekurencyjna). To polecenie usuwa katalogi oraz wszystkie znajdujące się w nich pliki i podkatalogi:

rm -r directory1 directory2 directory3

Jeśli katalog lub plik jest chroniony przed zapisem, wyświetli się monit o potwierdzenie usunięcia. Aby usunąć katalogi, które nie są puste, pomijając te monity, użyj opcji -r (rekurencja) oraz -f (wymuszenie):

rm -rf directory

W tym przypadku wymagana jest ostrożność. Pomyłka w poleceniu rm -rf może spowodować utratę danych lub nieprawidłowe działanie systemu. To niebezpieczne, dlatego zawsze warto zachować ostrożność. Aby zrozumieć strukturę katalogów i pliki, które zostaną usunięte przez polecenie rm -rf, użyj polecenia tree.

Aby zainstalować ten pakiet w systemie Ubuntu lub innej dystrybucji opartej na Debianie, użyj polecenia:

sudo apt-get install tree

Uruchomienie polecenia tree generuje prosty do zrozumienia diagram struktury katalogów i plików w katalogu, z którego jest uruchamiane:

tree

Możesz także podać ścieżkę do polecenia tree, aby uruchomić je w innym katalogu w systemie plików:

tree path/to/directory

Polecenie rm ma również opcje --one-file-system, --no-preserve-root oraz --preserve-root, jednak są one zalecane jedynie dla zaawansowanych użytkowników. W przypadku błędu możesz przypadkowo usunąć wszystkie pliki systemowe. Zachęcam do zapoznania się z dokumentacją polecenia strona podręcznika w celu uzyskania dodatkowych informacji.

Jak usunąć katalogi za pomocą rmdir

Istnieje inne polecenie, rmdir, które służy do usuwania katalogów. Różnica między rm a rmdir polega na tym, że rmdir może usuwać tylko puste katalogi. Nigdy nie usunie plików.

Najprostszym przypadkiem jest usunięcie pojedynczego pustego katalogu. Podobnie jak w przypadku rm, możesz przekazać wiele nazw katalogów do rmdir lub ścieżkę do katalogu:

rmdir directory

Możesz usunąć wiele katalogów, przekazując listę nazw do rmdir:

rmdir directory1 directory2 directory3

Aby usunąć katalog spoza bieżącego katalogu, określ pełną ścieżkę do tego katalogu:

rmdir /path/to/directory

Jeśli spróbujesz usunąć folder, który nie jest pusty, rmdir wyświetli komunikat o błędzie. Na przykład, jeśli rmdir pomyślnie usuwa katalog klienci, ale odmawia usunięcia katalogu projekty z powodu zawartości, katalog projekty pozostaje nienaruszony:

Gdy rmdir napotka błąd „Katalog nie jest pusty”, przestaje przetwarzać katalogi, które zostały do niego przekazane w wierszu poleceń. Jeśli poprosisz o usunięcie czterech katalogów, a pierwszy z nich zawiera pliki, rmdir wyświetli komunikat o błędzie i nie wykona dalszych działań. Możesz zmusić go do ignorowania tych błędów za pomocą opcji --ignore-fail-on-non-empty, aby przetwarzane były inne katalogi:

rmdir --ignore-fail-on-non-empty work/reports work/quotes

Możesz użyć opcji -p (rodzice), aby usunąć katalog, a także jego katalogi nadrzędne. Ta metoda działa, ponieważ rmdir uruchamia się w katalogu docelowym, a następnie wykonuje kroki wstecz do nadrzędnego. Katalog powinien być pusty, aby mógł zostać usunięty przez rmdir:

rmdir -p work/invoices

Na żądanie usuwane są zarówno faktury, jak i katalogi pracy.

Niezależnie od tego, czy używasz powłoki Bash, czy innej, Linux zapewnia elastyczne i wydajne polecenia do usuwania katalogów i plików bezpośrednio z wiersza poleceń terminala. Niektórzy użytkownicy preferują pracę w terminalu, podczas gdy inni mogą być zmuszeni do korzystania z tego sposobu z powodu braku GUI na serwerach, takich jak Raspberry Pi. Te polecenia są szczególnie przydatne dla tej grupy użytkowników.

Bez względu na to, jak preferujesz pracować, polecenia te doskonale nadają się do wykorzystania w skryptach powłoki. Jeśli skrypt jest uruchamiany przez zadanie cron, może pomóc w automatyzacji rutynowych zadań porządkowych, takich jak czyszczenie niechcianych plików dziennika. W przypadku korzystania z tych poleceń zawsze pamiętaj o ich mocy, dokładnie przetestuj wszystkie skrypty i utrzymuj aktualną kopię zapasową danych.


newsblog.pl