rm în Linux / Bash

Navigare și fișiere POSIX / GNU Coreutils

Șterge definitiv fișiere și directoare din sistemul de fișiere.

Sintaxă comandă
rm [opțiuni] fișier...

Ce face rm

Comanda rm (remove) șterge fișiere și legături din sistem. În Linux nu există un „Coș de reciclare” (Trash) implicit la linia de comandă: fișierele șterse cu rm sunt irecuperabile.

Pentru a șterge un folder și tot ce conține el se folosește opțiunea recursivă -r. Opțiunea forțată -f ignoră fișierele inexistente și nu cere niciodată confirmare.

Opțiuni și argumente

Opțiune / Parametru Descriere
-r, -R, --recursive Șterge recursiv directoarele și tot conținutul lor.
-f, --force Forțează ștergerea fără confirmări, ignorând fișierele inexistente și avertismentele de permisiune.
-i Cere confirmare interactivă înainte de fiecare ștergere.
-d, --dir Șterge directoare goale.
-v, --verbose Afișează numele fiecărui fișier pe măsură ce este șters.

Exemple

Exemplul 1: Ștergerea unui fișier simplu

Eliminăm un fișier temporar care nu mai este necesar.

touch temp.log
rm temp.log
[ ! -f temp.log ] && echo "Fisierul a fost eliminat"

Rezultat

Fisierul a fost eliminat

Exemplul 2: Curățarea recursivă a unui folder de build

Ștergem folderul temporar de compilare și fișierele generate.

mkdir -p build/cache
touch build/cache/date.bin
rm -rf build
[ ! -d build ] && echo "Folderul build a fost sters complet"

Rezultat

Folderul build a fost sters complet

Greșeli frecvente

  • Rularea comenzilor neatente precum rm -rf / sau rm -rf $DIR/* când variabila $DIR este goală (ceea ce expandează la /* și distruge sistemul).
  • Presupunerea că fișierele șterse pot fi recuperate dintr-un Recycle Bin.

Comenzi înrudite

  • rmdir: Șterge directoare goale din sistemul de fișiere.
  • cp: Copiază fișiere și directoare de la o locație sursă către o destinație.
  • mv: Mută sau redenumește fișiere și directoare.