Usunięcie pliku w dowolnym systemie operacyjnym jest zwykle tak proste, jak kliknięcie go i naciśnięcie klawisza usuwania lub kliknięcie prawym przyciskiem myszy i wysłanie go do kosza. Wszyscy wiemy, jak to zrobić i jest to najlepsza opcja, aby usunąć plik znajdujący się przed nami. Ale co się dzieje, gdy chcemy, na przykład, usunąć kilka plików znajdujących się w tym samym folderze? Zdarza się, że w Linuksie mamy rozszerzenie rm polecenie co pozwoli nam wyeliminować praktycznie wszystko z terminala.
„Rm” to skrót od „usunąć”, co oznacza „wyeliminować” w języku angielskim. Służy do usuwania plików, a jeśli jest używany rekurencyjnie, pozwala nam również usuwać katalogi. Domyślnie nie usuwa katalogów i usuwa wszystkie pliki określone w linii poleceń. Proces usuwania odłącza nazwę pliku w systemie plików od skojarzonych z nim danych i oznacza przestrzeń dyskową jako nadającą się do przyszłego zapisu. Trzeba być ostrożnym, bo raz skasowanego czegoś za pomocą rm nie da się odzyskać.
Opcje dostępne dla rm
-f, -siła |
Ignoruj nieistniejące pliki i nigdy nie pytaj przed ich usunięciem. |
-i | Zapytaj przed usunięciem. |
-I | Zapytaj raz przed usunięciem więcej niż trzech plików lub podczas usuwania rekurencyjnego. |
-Interaktywny[=KIEDY] | Pytanie wg KIEDY: nigdy, raz (-I) lub zawsze (-i). tak KIEDY nie określono, zawsze pytaj. |
–System jednoplikowy | Podczas rekurencyjnego usuwania hierarchii ignoruje każdy katalog, który znajduje się w innym katalogu niż ten, który odpowiada argumentowi wiersza poleceń. |
–Nie-zachowaj-root | Nie traktuje katalogu głównego w żaden specjalny sposób. |
–Preserve-root | Nie usuwa katalogu głównego, co jest zachowaniem domyślnym. |
-r, -R, –Rekursywne |
Rekurencyjnie usuwaj katalogi i ich zawartość. |
-d, –Dir |
Usuń puste katalogi. Ta opcja pozwala nam usunąć katalog bez podawania -r / -R / –recursive. |
-v, -Gadatliwy |
Tryb gadatliwy; Zawsze wyjaśniaj, co się dzieje. |
-Wsparcie | Pokaż komunikat pomocy. |
-wersja | Wyświetla informacje o wersji. |
Praktyczne przykłady
rm domyślnie nie usuwa katalogów. W tym celu musimy użyć opcji -r / -R / –recursive. Jeśli katalog jest pusty, użyj opcji n -d / –dir. Jeśli chcemy usunąć plik, który zaczyna się od myślnika (-), musimy dodać oddzielny podwójny myślnik (-) przed nazwą pliku. Jeśli drugi myślnik nie zostanie dodany, rm może błędnie zinterpretować nazwę pliku jako opcję. Warto pamiętać, że gwiazdka (*) oznacza „wszystko, co pasuje”, dodając „*”. i tylko za gwiazdką.
Na przykład, aby usunąć plik «-test.txt», musielibyśmy użyć polecenia
rm -- -prueba.txt
Powyższe będzie miało miejsce w przypadku, gdy znajduje się on w naszym folderze osobistym. Jeśli nie, będziemy musieli dodać pełną ścieżkę, która wyglądałaby mniej więcej tak:
rm /home/pablinux/Documentos/-file
Różnica między tymi dwiema opcjami polega na tym, że w drugim przypadku ma przed sobą ukośnik (/), co sprawia, że opcja nie jest mylona.
Inne przykłady to:
- rm -f test-txt: usunie plik „test.txt” bez pytania, nawet jeśli jest chroniony.
- rm *: usunie wszystkie pliki w katalogu, w którym jesteśmy z terminala. Jeśli ma ochronę przed zapisem, zapyta nas przed usunięciem.
- rm -f *: usunie wszystko z katalogu bez pytania.
- rm -i *- Spróbuje usunąć wszystkie pliki w katalogu, ale za każdym razem poprosi o usunięcie jednego.
- rm -I *: jak wyżej, ale zapyta o potwierdzenie tylko wtedy, gdy jest więcej niż trzy pliki.
- rm -r katalog, gdzie „katalog” jest konkretnym katalogiem: usunie katalog „katalog” oraz wszelkie zawarte w nim pliki i podkatalogi. Jeśli jakieś pliki lub podkatalogi są chronione przed zapisem, zapyta.
- rm -rf katalog: tak samo jak powyżej, ale nie będzie pytać.
Polecenie, którego nigdy nie powinieneś używać: rm -rf /
I kończymy poleceniem, które możemy zobaczyć w sieciach społecznościowych bardziej jako żart niż cokolwiek innego. Powyższe polecenie oznacza 1-usuń, 2-rekurencyjnie jak najwięcej i 3-zaczynając od korzenia. Ze względu na sposób, w jaki Linux zarządza dyskami, usunie również zawartość każdego dysku twardego, który podłączyliśmy do naszego komputera. Jeśli go używasz, nie mów, że nie ostrzegaliśmy.
Ciekawe co do wyjaśnienia dotyczącego ostatniego polecenia, wiedziałem, że mogę usunąć całą zawartość dysku, na którym znajduje się system, ale nie wiedziałem, że usuwa również zawartość dowolnego innego dysku, który podłączyliśmy!
Dziękuję bardzo, Twój post był bardzo przydatny, bardzo łatwo rozwiązałem swój problem, ale bez niego nie udałoby mi się.