Polecenie Linux rm: wszystko, co musisz wiedzieć
Opublikowany: 2023-01-22 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ć.
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
.
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
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
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
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*
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 *.??
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 *.?
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
.
Komendy Linuksa | ||
Pliki | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · dołącz · jq · złóż · uniq · journalctl · tail · stat · ls · fstab · echo · mniej · chgrp · chown · rev · look · strings · wpisz · zmień nazwę · zip · rozpakuj · zamontuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · łata · konwersja · rclone · niszczenie · srm · scp · gzip · chattr · wycinanie · znajdowanie · umask · wc | |
Procesy | alias · ekran · top · miły · renice · postęp · strace · systemd · tmux · chsh · historia · at · partia · wolny · który · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · limit czasu · ściana · tak · zabij · uśpienie · sudo · su · czas · groupadd · mod użytkownika · grupy · lshw · zamknięcie · ponowne uruchomienie · wstrzymanie · wyłączenie zasilania · passwd · lscpu · crontab · data · bg · fg · pidof · nohup · pmap | |
Praca w sieci | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · palec · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
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
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
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.
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
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
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
Na wyjściu widzimy, że pliki są usuwane, a gdy są puste, usuwane są również katalogi.
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
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.
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
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
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”
Możesz także uciec od spacji za pomocą ukośników odwrotnych „ \
”, w ten sposób:
rm kopia zapasowa\ do \ usunięcia
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