rm (od remove) to podstawowe narzędzie do kasowania plików i katalogów w systemach uniksowych. Działa nieodwracalnie — w terminalu nie ma kosza, więc to, co skasujesz przez rm, znika natychmiast i bez ostrzeżenia. Dlatego warto poznać jego flagi zanim narobisz sobie szkód.
Składnia i najważniejsze opcje
Podstawowa forma wygląda tak: rm [OPCJE] PLIK...
-r(lub-R) — usuwa katalogi rekurencyjnie, razem z całą zawartością. Bez tej flagirmnie tknie katalogu.-f— force: nie pyta o potwierdzenie, ignoruje nieistniejące pliki i nie zgłasza błędów. Wygodne w skryptach, ale właśnie przez to niebezpieczne.-i— pyta o potwierdzenie przed usunięciem każdego pliku. Dobry nawyk przy ryzykownych operacjach.-I— (GNU/Linux) pyta raz, gdy kasujesz więcej niż trzy pliki lub usuwasz rekurencyjnie. Mniej upierdliwe niż-i.-d— usuwa puste katalogi (alternatywa dlarmdir).-v— verbose: wypisuje, co właśnie skasował.--— kończy listę opcji; przydaje się, gdy nazwa pliku zaczyna się od myślnika, np.rm -- -plik.
Przykłady użycia
rm plik.txt— usuwa pojedynczy plik z bieżącego katalogu.rm -i *.log— kasuje wszystkie pliki.log, pytając o każdy z osobna.rm -r stary_projekt/— usuwa katalogstary_projektwraz z całą zawartością.rm -rf node_modules/— bezlitośnie wyrzuca cały folder bez pytań. Klasyk z życia dewelopera.rm -v plik1 plik2 plik3— usuwa kilka plików naraz i pokazuje, co poszło do piachu.
Częste błędy i pułapki
Najgroźniejsza kombinacja to rm -rf z błędną ścieżką. Słynne rm -rf / potrafi wyczyścić cały system (nowsze GNU coreutils blokują to przez --no-preserve-root, ale nie licz na to). Uważaj na spacje: rm -rf / tmp/cache zamiast /tmp/cache to dwa zupełnie różne polecenia — pierwsze próbuje skasować /.
Różnice między systemami: na Linuksie (GNU) masz długie opcje typu --recursive czy -I, a na macOS i BSD ich nie znajdziesz — tam działają tylko krótkie flagi, a do bezpiecznego nadpisywania służy -P. Pamiętaj też, że globowanie (*) rozwija powłoka, nie rm — zanim wciśniesz Enter przy rm *, sprawdź najpierw ls *.
Powiązane komendy: rmdir (puste katalogi), unlink (jeden plik), trash (kasowanie do kosza), shred (bezpieczne nadpisywanie) oraz find ... -delete do masowego usuwania według kryteriów.