Comanda Linux rm: tot ce trebuie să știți

Publicat: 2023-01-22
Laptop Linux afișează un prompt bash
fatmawati achmad zaenuri/Shutterstock.com
Comanda rm vă permite să ștergeți un fișier sau un director trecându-i numele: „rm filename” sau „rm -d directory”. Puteți include și o cale de director. Dacă există fișiere în director, utilizați opțiunea -r „director rm -r” pentru a șterge fișierele și folderele în mod recursiv.

Comanda Linux rm șterge fișiere și directoare. Pentru a utiliza acest instrument în siguranță, trebuie să fiți sigur ce se va întâmpla când apăsați „Enter”. Iată ce trebuie să știți.

Cuprins

Ce este comanda rm în Linux?
Cum să ștergeți fișiere cu rm
Utilizarea wildcards cu rm
Folosind rm interactiv
Folosind opțiunea rm Force
Ștergerea directoarelor cu rm
Evitarea greșelilor la utilizarea rm
Ce EIP?

Ce este comanda rm în Linux?

Comanda Linux rm este în primul rând pentru ștergerea fișierelor. Este unul pe care majoritatea oamenilor îl întâlnesc imediat după ce încep să folosească Linux. Doar în virtutea faptului că sunteți un nou venit la Linux, este posibil să faceți greșeli. Veți crea sau copia fișiere din întâmplare sau cu un nume greșit sau în locul greșit. Totul face parte din curba de învățare a liniei de comandă. Operațiunile de curățare pentru astfel de greșeli implică rm .

8 greșeli de tipar pe care chiar trebuie să le evitați pe Linux
LEGATE 8 greșeli de tipar pe care chiar trebuie să le evitați pe Linux

Comanda rm poate șterge fișiere, grupuri de fișiere, directoare sau arbori de directoare complet. De aceea trebuie folosit cu prudență. Folosirea rm nu este dificilă, dar penalizarea pentru eșec este mare.

Când un fișier este șters cu rm , acesta dispare. Nu este mutat la coșul de gunoi. Este ștearsă imediat. Asta nu înseamnă că ar trebui să evitați utilizarea rm . Dar pentru a-l folosi în siguranță, trebuie să fii conștient de ceea ce poate face și să te asiguri că îl folosești corect.

Unele instrumente sunt mai periculoase decât altele și mult mai puțin iertătoare pentru greșeli. De aceea nu a existat niciodată un film numit The Texas Wrench Massacre . rm nu este o cheie, cu siguranță este o motoferăstrău.

Oamenii folosesc drujba toată ziua în fiecare zi și, atâta timp cât o folosesc în mod responsabil și conștient, sunt bine. Este aceeași afacere cu rm . Când scoateți rm din geanta cu instrumente, ar trebui să încetiniți și să verificați, apoi să verificați de două ori linia de comandă.

Comanda rm este un executabil, nu face parte din shell. Deci, deși folosim Bash aici, este standardul Linux rm , nu un Bash rm special.

LEGATE: Liniile de comandă: de ce oamenii încă se deranjează cu ele?

Cum să ștergeți fișiere cu rm

Cel mai simplu mod de a folosi rm este să furnizați numele unui fișier pe care doriți să îl ștergeți.

 rm config.gc 

Ștergerea unui singur fișier prin trecerea numelui acestuia către rm

Ați revenit în tăcere la linia de comandă. rm adoptă poziția Linux clasică, strânsă, că, dacă nu se plânge de nimic, poți presupune că a făcut ceea ce ai cerut. Furnizarea unui nume de fișier ca acesta face ca rm să caute fișierul în directorul de lucru curent.

Puteți furniza mai multe nume de fișiere pe linia de comandă. De asemenea, puteți furniza o cale de director dacă un fișier pe care doriți să-l ștergeți nu se află în directorul curent.

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

Ștergerea a două fișiere trecând numele fișierului și calea directorului la rm

Din nou, nimic nu este raportat dacă rm reușește să ștergă fișierele specificate.

RELATE: 37 de comenzi Linux importante pe care ar trebui să le cunoașteți

Utilizarea wildcards cu rm

Wildcard-urile vă permit să specificați grupuri sau colecții de fișiere fără a fi nevoie să enumerați fișierele individuale pe linia de comandă.

Asteriscul „ * ” reprezintă orice secvență de caractere, inclusiv niciunul. Semnul întrebării „ ? ” reprezintă orice personaj.

Pentru a verifica dacă wildcard-urile dvs. se vor potrivi cu ceea ce vă așteptați, și nimic mai mult, le puteți folosi cu ls înainte de a le folosi cu rm.

Pentru a șterge toate fișierele PNG din directorul curent, utilizați „*.png”. Aceasta înseamnă că orice secvență de caractere urmată de „.png” va fi potrivită. Când fișierele au fost șterse, putem folosi ls pentru a verifica dacă au dispărut.

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

Folosind caracterul joker asterisc pentru a șterge toate fișierele cu extensia PNG

Pe computerul nostru de testare, avem două fișiere în directorul curent cu nume care încep cu „config”.

Putem să le ștergem pe ambele utilizând caracterul joker asterisc. Se potrivește cu ambele fișiere, deoarece rm caută nume de fișiere care încep cu „config”, urmate de orice secvență de caractere. Pe un fișier, acea secvență de caractere este „.sl3”, extensia numelui de fișier. Celălalt nume de fișier nu are caractere după „config”, dar deoarece asteriscul se potrivește cu orice caracter sau fără caractere , se potrivește și cu acel nume de fișier.

 ls config*
 rm config*
 ls config* 

Folosind caracterul wildcard asterisc pentru a șterge două fișiere, unul cu și unul fără, o extensie de fișier

Puteți folosi semnul întrebării în perechi. Aceasta va șterge fișierele care au extensii de fișiere de exact două caractere.

 este *.??
 rm *.??
 este *.?? 

Utilizarea a două caractere joker cu semn de întrebare pentru a șterge fișierele care au extensii de fișiere de exact două caractere

RELATE: 15 personaje speciale pe care trebuie să le cunoașteți pentru Bash

Folosind rm interactiv

O modalitate sigură de a utiliza rm este să-l forțezi să ceară confirmare înainte de a șterge fiecare fișier. Opțiunea -i (interactivă) vă permite să faceți acest lucru. Când adăugați această opțiune la linia de comandă, rm vă va solicita înainte de fiecare ștergere, oferindu-vă șansa de a trece peste acțiunile pe care nu le-ați propus.

Vom folosi opțiunea -i (interactivă) în această comandă. Încearcă să ștergă toate fișierele cu o extensie de fișier cu un singur caracter.

 rm -i *.? 

Folosind rm în mod interactiv, astfel încât să solicite înainte de fiecare ștergere

Fiecare fișier de potrivire este prezentat pe rând. Dacă răspundeți „y” sau „Y”, fișierul este șters. Dacă răspundeți „n”, fișierul este păstrat. De fapt, dacă răspundeți cu altceva decât „y” sau „y”, fișierul este păstrat. Puteți doar să apăsați „Enter” și fișierul este reținut.

Puteți parcurge rapid lista de fișiere, ștergând sau săriți peste fișiere pentru a le alege pe cele pe care doriți să le eliminați. După cum vom vedea, puteți utiliza opțiunea i- (interactivă) cu alte opțiuni rm .

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști

Folosind opțiunea rm Force

Dacă încercați să ștergeți un fișier care este doar pentru citire, rm vă solicită confirmarea înainte de a șterge fișierul. Este o plasă de siguranță bună, dar care ar putea deveni plictisitoare dacă aveți multe fișiere de șters.

 rm geonames.sl3 

rm solicită utilizatorului să confirme că dorește să ștergă un fișier numai în citire

Opțiunea -f (forță) îi indică rm să nu solicite niciodată. Îi spui „Da, șterge toate fișierele despre care mi-ai cere în mod normal.” De asemenea, împiedică rm să se plângă de fișiere inexistente.

 rm -f geonames.sl3 

Folosind opțiunea -f (forțare) pentru a preveni rm să solicite ștergeri

Opțiunea -f (forță) este adesea folosită atunci când ștergeți un set imbricat de fișiere și directoare.

Ștergerea directoarelor cu rm

Comanda rm poate elimina opțional și directoarele, împreună cu fișierele pe care le conțin. Aceasta este similară cu comanda rmdir , dar rmdir nu poate șterge directoare cu fișiere în ele. Acesta șterge doar directoarele goale. Comanda rm poate șterge cu ușurință directoare care conțin fișiere și alte directoare.

Cum să ștergeți fișiere și directoare în terminalul Linux
LEGATE Cum să ștergeți fișiere și directoare în terminalul Linux

Ștergerea unui director este similară cu ștergerea unui fișier. Furnizăm numele directorului pe linia de comandă. Trebuie să includem opțiunea -d (director). Așa cum am făcut atunci când ștergeam fișiere, putem furniza numele mai multor directoare. Putem oferi o cale către directorul care nu se află în directorul de lucru curent.

 rm -d vechi-proiecte 

Folosind opțiunea -d (director) pentru a șterge un director

Dacă directorul conține fișiere, acest lucru va eșua.

Pentru a șterge un director și conținutul acestuia, utilizați -r (recursiv). Aceasta șterge directorul, fișierele sale și orice directoare imbricate pe care le conține.

 arhiva rm -d
 arhiva rm -r 

Folosind opțiunea -r (recursivă) pentru a șterge un director și fișierele acestuia

A doua comandă reușește.

Pentru a comuta rm în modul complet de ferăstrău cu lanț, putem combina opțiunile -r (recursiv) și -f (forță). Acest lucru îi spune rm să ștergă recursiv toate fișierele și directoarele dintr-un arbore de directoare, chiar dacă sunt doar pentru citire și fără a ne solicita vreodată.

Pe computerul nostru de testare, avem un director numit „cod migrat”. Conține fișiere și un alt director numit „6502”. Directorul „6502” conține, de asemenea, fișiere și un alt director numit „ASM”. Există și fișiere în acel director. Unele dintre fișiere sunt doar pentru citire.

Vom include, de asemenea, comanda -v (verboză), astfel încât rm să ne spună ce face.

 codul migrat rm -rfv 

Folosirea steagurilor -rfv pentru a determina rm să elimine fișiere și directoare, chiar și fișiere numai pentru citire, fără a fi solicitat

În rezultat putem vedea că fișierele sunt eliminate și, atunci când sunt goale, directoarele sunt și ele eliminate.

Ieșirea steagurilor -rfv care arată fișierele care sunt șterse și directoarele care sunt șterse odată ce sunt goale

Evitarea greșelilor la utilizarea rm

Spațiile și alte caractere ciudate din numele fișierelor pot prezenta probleme. Numele de fișiere care încep cu o cratimă „ - ”, de exemplu, pot fi confundate cu opțiunile din linia de comandă. Dacă avem un fișier numit „-contributors.txt”, rm va încerca să proceseze numele ca o secvență de opțiuni de linie de comandă.

Deoarece rm nu are o opțiune numită „ -c ”, analiza liniei de comandă eșuează și fișierul nu este șters. Pentru a șterge fișierul, trebuie să îl precedați cu „./” pentru a furniza o cale către acesta.

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

Folosind „./” pentru a rezolva problema ștergerii unui fișier al cărui prim caracter este o cratimă

Spațiile din numele fișierelor sunt, de asemenea, problematice. Fie citați întregul nume al fișierului, fie folosiți completarea filei pentru a insera numele fișierului în linia de comandă pentru dvs., scăpând spațiile în timp ce face acest lucru. Dacă nu utilizați niciuna dintre aceste opțiuni, rm va trata fiecare parte a numelui fișierului ca pe un fișier individual.

Cum să tratați spațiile în numele fișierelor pe Linux
LEGATE Cum să tratați spațiile în numele fișierelor pe Linux

Aici, avem două fișiere, unul numit „backup” și unul numit „backup pentru ștergere”. Putem demonstra problema cu aceste nume de fișiere, folosind ls . Dacă încercăm să folosim ls în fișierul „backup to delete” și nu scăpăm și nu citim numele fișierului, comanda eșuează.

 ls -hl backup de șters 

Încercarea de a folosi ls pe un fișier cu spații în numele său, fără a cita șirul sau a evada spațiile

ls se plânge că nu poate găsi fișiere numite „la” sau „șterge”, dar găsește un fișier numit „backup”. Asta va face și rm . Se va plânge de două fișiere lipsă și apoi va șterge fișierul numit „backup”, care nu este ceea ce ne-am dorit.

 rm backup pentru a șterge 

Încercarea de a folosi rm pe un fișier cu spații în numele său, fără a cita șirul sau a evada spațiile

rm crede că funcționează cu trei fișiere, „backup”, „to” și „delete”. Se plânge că nu poate găsi „la” și „șterge”, dar găsește și șterge în tăcere „backup”.

Menționând numele fișierului, rm poate șterge fișierul corect.

 rm 'backup pentru a șterge' 

Utilizarea rm cu un nume de fișier citat pentru a depăși problema spațiilor din numele fișierului

De asemenea, puteți scăpa de spații cu bare oblice inverse „ \ ”, astfel:

 rm backup\ to\ delete 

Utilizarea rm cu un nume de fișier cu spații escape pentru a depăși problema spațiilor din numele fișierului

Dacă utilizați completarea filelor pentru a introduce numele fișierelor, acestea vor fi eliminate automat, dacă este necesar.

Ce EIP?

Spre deosebire de ferăstrăile cu lanț din lumea reală, nu există niciun echipament de protecție personală pe care să-l poți folosi cu rm .

Ce puteți face este să vă verificați sintaxa cu ls înainte de a o încerca cu rm și să utilizați modul interactiv, astfel încât să decideți ce va fi șters.

În afară de asta, este practică până când te simți confortabil și încrezător. Cea mai sigură modalitate de a face asta este să copiați o grămadă de fișiere sacrificiale într-un director și să exersați pe acestea.

RELATE: Ștergeți fișierele mai vechi de x zile pe Linux