Polecenie rm w Linuksie: opcje rm -rf i usuwanie bez potwierdzenia

Polecenie rm usuwa pliki od razu, bez kosza. rm to skrót od remove i usuwa pliki oraz katalogi; ten wpis omawia podstawy, opcje i powód, dla którego katalog główny zostaje nawet po [rm -rf /].
W AlmaLinux 9.8 konto root ma domyślnie [alias rm='rm -i'], więc przed usunięciem pyta o potwierdzenie. Dla systemów Linux bez tego ustawienia wpis pokazuje też, jak samemu dodać alias.
✅ Podstawowe użycie
Podstawowa składnia wygląda tak.
rm -opcje cel: Plik lub katalog
Plik usuwa się samą nazwą; katalog dopiero po dodaniu opcji -r.
# usunięcie pliku
rm file1
# usunięcie kilku plików
rm file1 file2
# usunięcie katalogu z całą zawartością
rm -r dir1/
# usunięcie pustego katalogu
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directoryJeśli podasz katalog bez opcji, nie zostanie usunięty, jak widać wyżej.
Usunięcie dowiązania symbolicznego usuwa tylko dowiązanie; plik, na który wskazuje, zostaje. Do sprawdzenia przed usunięciem i po nim użyj też polecenia ls.
✅ rm -rf: usuwanie bez potwierdzenia
Polecenie rm pyta [remove regular file], bo na koncie root rm działa przez alias [rm -i].
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Usuwanie katalogu z opcją -r pyta o potwierdzenie przy wejściu do każdego katalogu i dla każdego pliku, co przy wielu plikach jest uciążliwe.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yWtedy dodaj opcję -f: usuwa bez potwierdzenia i nie zgłasza błędu, nawet gdy pliku nie ma.
rm -rf logs/Ukośnik wsteczny [\] przed poleceniem, który omija alias, albo [yes |] na początku, by przy każdym pytaniu wpisywało się y, daje ten sam wynik.
\rm -r logs/
yes | rm -r logs/✅ Opcje polecenia rm & symulator
| Opcja | Opis | |
|---|---|---|
| -f | --forceUsuwa bez potwierdzenia i nie zgłasza błędu dla nieistniejących plików | |
| -i | Pyta użytkownika o potwierdzenie przed każdym usunięciemalias rm='rm -i' | |
| -I(wielkie i) | Pyta tylko raz przy czterech lub więcej plikach albo z -r | |
| -r, -R | --recursiveUsuwa katalog razem z podkatalogami i plikami | |
| -d | --dirUsuwa pusty katalog | |
| -v | --verboseWypisuje każdy usunięty plik i katalog w osobnym wierszu | |
| --preserve-root | Nie usuwa katalogu głównego (/) (domyślnie) | |
| --no-preserve-root | Wyłącza ochronę katalogu głównego (/) |
✅ rm -rf /: ochrona katalogu głównego
Przy pracy z hostingiem zdarza się usunąć pliki, których nie należało ruszać. Większość da się odtworzyć z kopii zapasowej, ale po usunięciu katalogu głównego odzyskiwanie jest kłopotliwe nawet ze snapshotem. Kilka razy słyszałem o przypadkach, gdy źle wpisanego rm -rf nie dało się cofnąć.
Polecenie rm domyślnie stosuje opcję [--preserve-root], więc katalog główny nie zostanie usunięty nawet po [rm -rf /].
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafeNie powstrzymuje jednak [rm -rf /*]. Powłoka zamienia [/*] na nazwy katalogów, takie jak /bin, /etc i /home, zanim je przekaże, więc rm usuwa każdy z tych katalogów, a nie [/].
Świeża instalacja AlmaLinux 9.8 ma aliasy -i dla rm, cp i mv w [/root/.bashrc], jak poniżej. Zwykłe konta użytkowników tych aliasów nie mają.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Na koncie lub w systemie Linux bez aliasu dodaj jeden wiersz na końcu [~/.bashrc] i wczytaj go ponownie.
# dodaj na końcu ~/.bashrc
alias rm='rm -i'
# wczytaj ponownie
source ~/.bashrc
ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.