Comanda Linux rm: tot ce trebuie să știți
Publicat: 2023-01-22 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.
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
.
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
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
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
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*
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 *.??
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 *.?
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
.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · găsi · umask · wc | |
Procesele | alias · ecran · top · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg · pidof · nohup · pmap | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
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
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
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.
Ș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
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
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
În rezultat putem vedea că fișierele sunt eliminate și, atunci când sunt goale, directoarele sunt și ele eliminate.
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
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.
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
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
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'
De asemenea, puteți scăpa de spații cu bare oblice inverse „ \
”, astfel:
rm backup\ to\ delete
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