Polecenie Linux rm: wszystko, co musisz wiedzieć

Opublikowany: 2023-01-22
Laptop z systemem Linux wyświetlający monit bash
fatmawati achmad zaenuri/Shutterstock.com
Polecenie rm pozwala usunąć plik lub katalog, przekazując jego nazwę: „rm nazwa pliku” lub „rm -d katalog”. Możesz także dołączyć ścieżkę do katalogu. Jeśli w katalogu znajdują się pliki, użyj opcji -r „rm -r katalog”, aby rekurencyjnie usuwać pliki i foldery.

Polecenie Linux rm usuwa pliki i katalogi. Aby bezpiecznie korzystać z tego narzędzia, musisz mieć pewność, co się stanie po naciśnięciu „Enter”. Oto, co musisz wiedzieć.

Spis treści

Co to jest polecenie rm w systemie Linux?
Jak usunąć pliki za pomocą rm
Używanie symboli wieloznacznych z rm
Używanie rm Interaktywnie
Korzystanie z opcji rm Force
Usuwanie katalogów za pomocą rm
Unikanie błędów podczas używania rm
Jakie środki ochrony indywidualnej?

Co to jest polecenie rm w systemie Linux?

Polecenie Linux rm służy głównie do usuwania plików. Jest to coś, z czym większość ludzi spotyka się wkrótce po rozpoczęciu korzystania z Linuksa. Tylko dlatego, że jesteś nowicjuszem w Linuksie, prawdopodobnie popełniasz błędy. Utworzysz lub skopiujesz pliki przez przypadek, pod niewłaściwą nazwą lub w niewłaściwe miejsce. To wszystko jest częścią krzywej uczenia się wiersza poleceń. Operacje czyszczenia takich błędów obejmują rm .

8 literówek, których naprawdę musisz unikać w systemie Linux
POWIĄZANE 8 literówek, których naprawdę musisz unikać w systemie Linux

Polecenie rm może usuwać pliki, grupy plików, katalogi lub całe drzewa katalogów. Dlatego należy go używać ostrożnie. Korzystanie z rm nie jest trudne, ale kara za niepowodzenie jest wysoka.

Kiedy plik zostanie usunięty za pomocą rm , już go nie ma. Nie jest przenoszony do kosza. Jest natychmiast usuwany. To nie znaczy, że powinieneś unikać używania rm . Ale aby używać go bezpiecznie, musisz być świadomy jego możliwości i upewnić się, że używasz go właściwie.

Niektóre narzędzia są bardziej niebezpieczne niż inne i znacznie mniej wybaczają błędy. Dlatego nigdy nie powstał film pod tytułem Teksańska masakra . rm to nie klucz, to zdecydowanie piła łańcuchowa.

Ludzie używają pił łańcuchowych codziennie przez cały dzień i dopóki używają ich odpowiedzialnie i rozważnie, wszystko jest w porządku. To samo dotyczy rm . Kiedy wyciągasz rm z torby z narzędziami, powinieneś zwolnić i sprawdzić, a następnie ponownie sprawdzić swoją linię poleceń.

Polecenie rm jest plikiem wykonywalnym, nie jest częścią powłoki. Tak więc, chociaż używamy tutaj Bash, jest to standardowy Linux rm , a nie specjalny Bash rm .

POWIĄZANE: Wiersze poleceń: dlaczego ludzie wciąż się nimi przejmują?

Jak usunąć pliki za pomocą rm

Najprostszym sposobem użycia rm jest podanie nazwy pliku, który chcesz usunąć.

 rm config.gc 

Usuwanie pojedynczego pliku poprzez przekazanie jego nazwy do rm

Cicho wrócisz do wiersza poleceń. rm przyjmuje klasyczną, małomówną postawę Linuksa, że ​​jeśli na nic nie narzeka, można założyć, że zrobił to, o co prosiłeś. Podanie takiej nazwy pliku powoduje, że rm szuka pliku w bieżącym katalogu roboczym.

W wierszu poleceń można podać wiele nazw plików. Możesz również podać ścieżkę do katalogu, jeśli plik, który chcesz usunąć, nie znajduje się w bieżącym katalogu.

 rm memlog.sh /home/dave/dev-archive/config.gc 

Usuwanie dwóch plików przez przekazanie ich nazwy pliku i ścieżki do katalogu do rm

Ponownie nic nie jest zgłaszane, jeśli rm zdoła usunąć określone pliki.

POWIĄZANE: 37 ważnych poleceń systemu Linux, które powinieneś znać

Używanie symboli wieloznacznych z rm

Symbole wieloznaczne umożliwiają określanie grup lub kolekcji plików bez konieczności wyświetlania poszczególnych plików w wierszu poleceń.

Gwiazdka „ * ” oznacza dowolny ciąg znaków, w tym żaden. Znak zapytania „ ? ” reprezentuje dowolny pojedynczy znak.

Aby sprawdzić, czy twoje symbole wieloznaczne będą pasować do tego, czego oczekujesz, i nic więcej, możesz użyć ich z ls przed użyciem ich z rm.

Aby usunąć wszystkie pliki PNG w bieżącym katalogu, użyj „*.png”. Oznacza to, że dopasowana zostanie dowolna sekwencja znaków, po której następuje „.png”. Gdy pliki zostaną usunięte, możemy użyć ls , aby sprawdzić, czy zniknęły.

 ls *.png
 rm *.png
 ls *.png 

Używając symbolu wieloznacznego gwiazdki, aby usunąć wszystkie pliki z rozszerzeniem PNG

Na naszym komputerze testowym mamy w bieżącym katalogu dwa pliki o nazwach zaczynających się od „config”.

Możemy usunąć oba z nich za pomocą symbolu wieloznacznego gwiazdki. Pasuje do obu plików, ponieważ rm szuka nazw plików zaczynających się od „config”, po którym następuje dowolny ciąg znaków. W jednym pliku ta sekwencja znaków to „.sl3”, rozszerzenie nazwy pliku. Druga nazwa pliku nie zawiera znaków po „config”, ale ponieważ gwiazdka pasuje do dowolnych znaków lub nie zawiera żadnych znaków , pasuje również do tej nazwy pliku.

 ls konfiguracja*
 konfiguracja rm*
 ls konfiguracja* 

Użycie symbolu wieloznacznego gwiazdki do usunięcia dwóch plików, jednego z rozszerzeniem i jednego bez rozszerzenia

Możesz używać znaku zapytania w parach. Spowoduje to usunięcie plików, które mają rozszerzenia plików składające się dokładnie z dwóch znaków.

 ls *.??
 rm *.??
 ls *.?? 

Używanie dwóch symboli wieloznacznych znaku zapytania do usuwania plików, które mają rozszerzenia plików składające się dokładnie z dwóch znaków

POWIĄZANE: 15 znaków specjalnych, które musisz znać dla Bash

Używanie rm Interaktywnie

Bezpiecznym sposobem użycia rm jest zmuszenie go do poproszenia o potwierdzenie przed usunięciem każdego pliku. Opcja -i (interaktywna) pozwala to zrobić. Gdy dodasz tę opcję do wiersza poleceń, rm wyświetli monit przed każdym usunięciem, dając ci szansę na wykonanie działań, których nie zamierzałeś.

W tym poleceniu użyjemy opcji -i (interaktywnej). Próbuje usunąć wszystkie pliki z rozszerzeniem jednoznakowym.

 rm -i *.? 

Używając rm interaktywnie, aby wyświetlał monit przed każdym usunięciem

Każdy pasujący plik jest prezentowany po kolei. Jeśli odpowiesz „y” lub „Y”, plik zostanie usunięty. Jeśli odpowiesz „n”, plik zostanie zachowany. W rzeczywistości, jeśli odpowiesz czymś innym niż „y” lub „y”, plik zostanie zachowany. Możesz po prostu nacisnąć „Enter”, a plik zostanie zachowany.

Możesz szybko przejrzeć listę plików, usuwając lub pomijając pliki, aby wybrać te, które chcesz usunąć. Jak zobaczymy, możesz użyć opcji i- (interaktywnej) z innymi opcjami rm .

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów

Korzystanie z opcji rm Force

Jeśli spróbujesz usunąć plik, który jest tylko do odczytu, rm wyświetli monit o potwierdzenie przed usunięciem pliku. To dobra siatka bezpieczeństwa, ale taka, która może stać się nużąca, jeśli masz wiele plików do usunięcia.

 rm geonames.sl3 

rm monitującego użytkownika o potwierdzenie chęci usunięcia pliku tylko do odczytu

Opcja -f (wymuś) instruuje rm , aby nigdy nie pytał. Mówisz mu: „Tak, usuń wszystkie pliki, o które normalnie prosiłbyś mnie”. Uniemożliwia również rm narzekanie na nieistniejące pliki.

 rm -f geonames.sl3 

Użycie opcji -f (wymuś), aby uniemożliwić rm monitowanie o usunięcie

Opcja -f (wymuś) jest często używana podczas usuwania zagnieżdżonego zestawu plików i katalogów.

Usuwanie katalogów za pomocą rm

Polecenie rm może również opcjonalnie usuwać katalogi wraz z zawartymi w nich plikami. Jest to podobne do polecenia rmdir , ale rmdir nie może usuwać katalogów zawierających pliki. Usuwa tylko puste katalogi. Polecenie rm może łatwo usuwać katalogi zawierające pliki i inne katalogi.

Jak usunąć pliki i katalogi w terminalu Linux
POWIĄZANE Jak usunąć pliki i katalogi w terminalu Linux

Usuwanie katalogu jest podobne do usuwania pliku. Nazwę katalogu podajemy w wierszu poleceń. Musimy dołączyć opcję -d (katalog). Podobnie jak w przypadku usuwania plików, możemy podać nazwy kilku katalogów. Możemy podać ścieżkę do katalogu, który nie znajduje się w bieżącym katalogu roboczym.

 rm -d stare projekty 

Użycie opcji -d (katalog) w celu usunięcia katalogu

Jeśli katalog zawiera pliki, to się nie powiedzie.

Aby usunąć katalog i jego zawartość, użyj flagi -r (rekurencyjnie). Spowoduje to usunięcie katalogu, jego plików i wszelkich zawartych w nim katalogów zagnieżdżonych.

 rm -d archiwum
 rm -r archiwum 

Użycie opcji -r (rekurencyjnie) do usunięcia katalogu i jego plików

Drugie polecenie powiodło się.

Aby przełączyć rm w pełny tryb piły łańcuchowej, możemy połączyć opcje -r (rekurencyjne) i -f (wymuszone). To mówi rm , aby rekurencyjnie usuwał wszystkie pliki i katalogi w drzewie katalogów, nawet jeśli są one tylko do odczytu i nigdy nas nie pytał.

Na naszym komputerze testowym mamy katalog o nazwie „zmigrowany kod”. Zawiera pliki i inny katalog o nazwie „6502”. Katalog „6502” zawiera również pliki i inny katalog o nazwie „ASM”. W tym katalogu też są pliki. Niektóre pliki są tylko do odczytu.

Dołączymy również polecenie -v (verbose), aby rm powiedział nam, co robi.

 rm -rfv migrowany kod 

Używanie flag -rfv do powodowania, że ​​rm usuwa pliki i katalogi, nawet pliki tylko do odczytu, bez pytania

Na wyjściu widzimy, że pliki są usuwane, a gdy są puste, usuwane są również katalogi.

Wyjście flag -rfv pokazujące pliki, które są usuwane, oraz katalogi, które są usuwane, gdy są puste

Unikanie błędów podczas używania rm

Spacje i inne dziwne znaki w nazwach plików mogą powodować problemy. Nazwy plików zaczynające się na przykład od myślnika „ - ” mogą zostać pomylone z opcjami wiersza poleceń. Jeśli mamy plik o nazwie „-contributors.txt”, rm spróbuje przetworzyć nazwę jako sekwencję opcji wiersza poleceń.

Ponieważ rm nie ma opcji o nazwie „ -c ”, analiza wiersza poleceń kończy się niepowodzeniem i plik nie jest usuwany. Aby usunąć plik, należy go poprzedzić „./”, aby podać ścieżkę do niego.

 rm -contributors.txt
 rm ./-contributors.txt 

Używanie „./” do obejścia problemu usuwania pliku, którego pierwszym znakiem jest łącznik

Spacje w nazwach plików są również problematyczne. Albo zacytuj całą nazwę pliku, albo użyj uzupełniania tabulatorami, aby wstawić nazwę pliku do wiersza poleceń, unikając przy tym spacji. Jeśli nie użyjesz żadnej z tych opcji, rm potraktuje każdą część nazwy pliku jako osobny plik.

Jak radzić sobie ze spacjami w nazwach plików w systemie Linux
POWIĄZANE Jak radzić sobie ze spacjami w nazwach plików w systemie Linux

Tutaj mamy dwa pliki, jeden o nazwie „kopia zapasowa” i jeden o nazwie „kopia zapasowa do usunięcia”. Możemy zademonstrować problem z tymi nazwami plików, używając ls . Jeśli spróbujemy użyć ls na pliku „kopia zapasowa do usunięcia” i nie zmienimy znaczenia ani nie zacytujemy nazwy pliku, polecenie nie powiedzie się.

 ls -hl kopia zapasowa do usunięcia 

Próba użycia ls na pliku ze spacjami w nazwie, bez cytowania łańcucha lub ucieczki przed spacjami

ls skarży się, że nie może znaleźć plików o nazwie „do” lub „usuń”, ale znajduje plik o nazwie „kopia zapasowa”. Rm też to rm . Zgłosi brak dwóch plików, a następnie usunie plik o nazwie „kopia zapasowa”, czego nie chcieliśmy.

 rm kopia zapasowa do usunięcia 

Próba użycia rm na pliku ze spacjami w nazwie, bez cytowania łańcucha lub ucieczki przed spacjami

rm myśli, że działa z trzema plikami: „kopia zapasowa”, „do” i „usuń”. Narzeka, że ​​nie może znaleźć „do” i „usunąć”, ale znajduje i po cichu usuwa „kopię zapasową”.

Cytowanie nazwy pliku pozwala rm usunąć właściwy plik.

 rm „kopia zapasowa do usunięcia” 

Użycie rm z nazwą pliku w cudzysłowie w celu rozwiązania problemu spacji w nazwie pliku

Możesz także uciec od spacji za pomocą ukośników odwrotnych „ \ ”, w ten sposób:

 rm kopia zapasowa\ do \ usunięcia 

Używanie rm z nazwą pliku ze spacjami, aby przezwyciężyć problem spacji w nazwie pliku

Jeśli użyjesz uzupełniania tabulatorami do wprowadzania nazw plików, w razie potrzeby zostaną one automatycznie zmienione.

Jakie środki ochrony indywidualnej?

W przeciwieństwie do prawdziwych pił łańcuchowych, nie ma środków ochrony osobistej, których można używać z rm .

To, co możesz zrobić, to sprawdzić składnię za pomocą ls przed wypróbowaniem jej za pomocą rm i użyć trybu interaktywnego, abyś mógł zdecydować, co zostanie usunięte.

Poza tym ćwicz, dopóki nie poczujesz się komfortowo i pewnie. Najbezpieczniejszym sposobem na to jest skopiowanie kilku plików ofiarnych do katalogu i ćwiczenie na nich.

POWIĄZANE: Usuń pliki starsze niż x dni w systemie Linux