Android

Cum se elimină (șterge) directorul din linux

Installing linux in virtualbox

Installing linux in virtualbox

Cuprins:

Anonim

Există mai multe moduri diferite de a elimina directoarele din sistemele Linux. Dacă utilizați un manager de fișiere desktop, cum ar fi Gnome's Files sau KDE's Dolphin, atunci puteți șterge fișiere și directoare folosind interfața grafică de utilizator a managerului. Dar, dacă lucrați pe un server fără cap sau doriți să eliminați mai multe directoare simultan, cea mai bună opțiune este să ștergeți directoarele (folderele) de pe linia de comandă.

, vă vom explica cum să ștergeți directoarele în Linux folosind comenzile rmdir , rm și find .

Înainte de a începe

Când eliminați un director folosind managerul de fișiere Desktop, directorul este de fapt mutat în Coșul de gunoi și poate fi recuperat cu ușurință.

Aveți mare grijă atunci când eliminați fișierele sau directoarele din linia de comandă, deoarece odată ce directorul este șters folosind comenzile explicate, acesta nu poate fi recuperat complet.

Pe majoritatea sistemelor de fișiere Linux, ștergerea unui director necesită permisiunea de scriere a directorului și a conținutului acestuia. În caz contrar, veți primi eroarea „Funcționarea nu este permisă”.

Numele de directoare cu un spațiu în ele trebuie evitate cu o întoarcere ( / ).

Înlăturarea directoarelor cu rmdir

rmdir este un utilitar pentru linia de comandă pentru ștergerea directoarelor goale. Este util când doriți să ștergeți un director doar dacă este gol, fără a fi necesar să verificați dacă directorul este gol sau nu.

Pentru a șterge un director cu rmdir , tastați comanda urmată de numele directorului pe care doriți să îl eliminați. De exemplu, pentru a șterge un director numit dir1 ar trebui să tastați:

rmdir dir1

Dacă directorul nu este gol, veți primi următoarea eroare:

rmdir: failed to remove 'dir1': No such file or directory

În acest caz, va trebui să utilizați comanda rm sau să eliminați manual conținutul directorului înainte de ao putea șterge.

Înlăturarea directoarelor cu rm

rm este un utilitar pentru linia de comandă pentru ștergerea fișierelor și directoarelor. Spre deosebire de rmdir , comanda rm poate șterge directoarele goale și non-goale.

În mod implicit, atunci când este utilizat fără nicio opțiune rm nu elimină directoarele. Pentru a șterge un director gol, utilizați opțiunea -d ( --dir ) și pentru a șterge un director care nu este gol și tot conținutul său utilizează opțiunea -r ( --recursive sau -R ).

De exemplu, pentru a șterge un director numit dir1 împreună cu întregul conținut pe care l-ați introduce:

rm -r dir1

Dacă un director sau un fișier din director este protejat de scriere, vi se va solicita să confirmați ștergerea. Pentru a elimina un director fără să vi se solicite, utilizați opțiunea -f :

rm -rf dir1

Pentru a elimina mai multe directoare simultan, utilizați comanda rm urmată de numele denumirilor directoarelor separate prin spațiu. Comanda de mai jos va elimina fiecare director listat și conținutul acestora:

rm -r dir1 dir2 dir3

Opțiunea -i spune rm să vă solicite să confirmați ștergerea fiecărui subdirector și fișier. Dacă directorul conține o mulțime de fișiere, acest lucru poate fi puțin enervant, așa că puteți lua în considerare utilizarea opțiunii -I ceea ce vă va solicita o singură dată înainte de a continua cu ștergerea.

rm -rI dir1

Pentru a elimina tipul de director y și apăsați Enter .

rm: remove 1 argument recursively? y

Puteți utiliza, de asemenea, extensii regulate pentru a potrivi și șterge mai multe directoare. De exemplu, pentru a elimina toate directoarele de prim nivel din directorul curent care se încheie cu _bak , ar trebui să folosiți următoarea comandă:

rm -r *_bak

Utilizarea extensiilor regulate la eliminarea directoarelor poate fi riscantă. Se recomandă mai întâi listarea directoarelor cu comanda ls astfel încât să puteți vedea ce directoare vor fi șterse înainte de a rula comanda rm .

Înlăturarea directoarelor cu find

find este un utilitar pentru linia de comandă care vă permite să căutați fișiere și directoare pe baza unei expresii date și să efectuați o acțiune pe fiecare fișier sau director asociat.

Cel mai frecvent scenariu este să folosești comanda find pentru a șterge directoarele pe baza unui model. De exemplu, pentru a șterge toate directoarele care se termină cu _cache din directorul de lucru curent, aveți să rulați:

find. -type d -name '*_cache' -exec rm -r {} +

Să analizăm comanda de mai sus:

  • /dir - căutare recursivă în directorul de lucru curent ( . ). -type d - restricționează căutarea la directoare. -name '*_cache' - căutare numai directoare care se termină cu _cache -exec - execută o comandă externă cu argumente opționale, în acest caz, este rm -r . {} + - adaugă fișierele găsite la sfârșitul comenzii rm .

Eliminarea tuturor directoarelor goale

Pentru a elimina toate directoarele goale dintr-un arbore de directoare pe care le-ați folosi:

find /dir -type d -empty -delete

Iată o explicație pentru opțiunile utilizate:

  • /dir - căutare recursivă în /dir . -type d - restricționează căutarea la directoare. -empty - restricționează căutarea doar la directoarele goale. -delete - șterge toate directoarele goale găsite din subtree. -delete poate șterge doar directoarele goale.

Folosiți opțiunea -delete cu precauție extremă. Linia de comandă Find este evaluată ca expresie și dacă adăugați mai întâi opțiunea -delete , comanda va șterge totul sub punctele de pornire specificate. Utilizați întotdeauna -delete ca ultimă opțiune și înainte de a șterge, testați mai întâi comanda fără opțiunea -delete .

/ bin / rm: Lista de argumente prea lungă

Acest mesaj de eroare apare când utilizați comanda rm pentru a elimina un director care conține un număr imens de fișiere. Acest lucru se întâmplă deoarece numărul de fișiere este mai mare decât limita sistemului pe dimensiunea argumentului liniei de comandă.

Există mai multe soluții diferite pentru această problemă. De exemplu, puteți cd la director și manual sau folosind o buclă pentru a elimina sub-directoare unul câte unul.

Cea mai ușoară soluție este mai întâi să ștergeți toate fișierele din director cu comanda find și apoi să ștergeți directorul:

find /dir -type f -delete && rm -r /dir

Concluzie

Cu rm and find puteți șterge directoarele pe baza unor criterii diferite, rapid și eficient.

Ștergerea directoarelor este un proces simplu și ușor, dar trebuie să fii prudent să nu ștergi date importante.

rm rmdir găsi terminal