Cum să ștergeți un director mare cu fișiere în Linux
Gestionarea fișierelor este una dintre sarcinile comune pe care le întreprinde un utilizator pe un sistem Linux, care include crearea, copierea, in miscare, modificarea și ștergerea fișierelor și directoarelor.
Acest articol oferă câteva sfaturi pentru linia de comandă despre cum puteți ștergeți un director mare care conține mii de fișiere într-un sistem Linux.
Cuprins
Ștergeți fișierele din Linux
Cea mai obișnuită modalitate de ștergere a fișierelor pe un sistem Linux este utilizarea comanda rm, care are următorul format de sintaxă:
$ rm [ opțiuni ] sample_file.txt.
De exemplu, pentru a șterge un fișier text numit fișier1.txt, rulați comanda:
$ rm fișier1.txt.
Pentru a elimina forțat un fișier fără a vi se cere permisiunea, treceți -f steag după cum urmează.
$ rm -f fișier1.txt.
Ștergeți directorul în Linux
Pentru a elimina sau șterge un director numit director_eșantion, rulați următoarea comandă:
$ rm -rf director_eșantion.
The -r opțiunea șterge recursiv directorul alături de toate subdirectoarele și fișierele conținute în acesta.
Pentru a șterge sau a elimina un director gol, utilizați comanda rmdir, care este util atunci când doriți să eliminați un director gol numit director_test așa cum se arată:
$ rmdir director_test.
Ștergeți un director mare cu tone de fișiere
Cand comanda rm este executat, sistemul de fișiere elimină doar legătura către fișier, ceea ce face ca fișierul să nu fie disponibil utilizatorului, dar în sens real, datele fișierului în sine rămân intacte pe disc.
Prin urmare, atunci când comanda rm este emis, doar referința la fișiere este eliminată, ceea ce eliberează blocurile de stocare din sistemul de fișiere.
Ca atare, există mai multe căi de ștergere a fișierelor în Linux.
Ștergeți fișierele cu număr de inode în Linux
De exemplu, puteți șterge un fișier folosind numărul său de inod. Puteți afla numărul inodul unui fișier folosind comanda stat așa cum se arată.
Lovit 'y' pentru a confirma eliminarea și apăsați INTRODUCE.
Ștergeți fișierele după numărul de inod
Să vedem acum cum să ștergem directoare mari cu mii de fișiere.
Creați un director cu mii de fișiere
Bătrânul bun rm comanda este cea mai rapidă modalitate de a șterge un director mare cu mii de fișiere. Pentru a demonstra acest lucru, vom, mai întâi, creați un director exemplu și navigați în ea.
$ mkdir test_dir $ cd test_dir.
În continuare, vom crea un număr nebun de mare de fișiere, în acest caz, 500,000 fișiere text folosind următoarele bash pentru o buclă.
$ timp pentru articol în {1..500000}; atingeți nume_fișier$item.txt; Terminat.
NOTĂ: Comanda de mai sus este consumatoare de resurse și, prin urmare, consumă CPU și RAM substanțial. De asemenea, durează destul de mult timp, în funcție de specificațiile sistemului dvs. În cazul meu, rulez un VM cu 4 GB RAM și 3 procesoare.
Creați mii de fișiere în Linux
Cel mai rapid mod de a șterge directorul în Linux
Cel mai rapid mod de a șterge un director mare este folosirea vechiului bun rm director, așa cum se arată mai jos. Aici, opțiunea de timp afișează timpul necesar pentru a executa cu succes comanda.
$ time rm -rf /test_dir.
Cel mai rapid mod de a șterge un director mare
Din rezultat, puteți vedea că a durat aproximativ 6 secunde pentru a șterge întregul director.
Ștergeți directorul mare cu comanda Găsiți
O altă modalitate de a șterge directoare mari este folosirea comanda găsi așa cum se arată în sintaxa următoare.
$ time find /path/to/directory -delete.
Deși nu la fel de rapid ca rm comanda, încă își face treaba.
$ time find test_dir -delete.
Găsiți comanda – Ștergeți directorul mare
Ștergeți directorul mare cu comanda Perl
O altă abordare este utilizarea Perl limbaj de scripting din director pentru a elimina tone de fișiere.
$ cd test_dir. $ time perl -e 'pentru(){((stat)[9]Comanda Perl – Ștergeți directorul mare
Din rezultat, puteți spune că a durat mult mai mult să ștergeți toate fișierele din director decât comenzile anterioare la care ne-am uitat mai devreme.
Concluzie
Iată-l. În acest ghid, am analizat cum puteți șterge directoare mari care conțin mii de fișiere pe un sistem Linux.