Lista este directivă recursivă numai în Linux?

Is List Only Directories Recursively Linux



Cuvântul recursiv se referă la faptul că un sistem de operare Linux sau Unix se ocupă de conținutul folderelor și, dacă un folder are subfoldere și documente, instrucțiunea funcționează în continuare cu toate acele documente (recursiv). Ar putea fi posibil ca directorul copil să aibă propriul său set de fișiere și foldere (de exemplu, dosare mari), etc. și așa mai departe. Veți utiliza instrucțiuni Linux diferite pentru a parcurge recursiv fiecare folder înainte de a ajunge la marginea folderului specificat. La acel nivel, instrucțiunile Linux revin la o oprire a arborelui și repetă procesul pentru orice sub-foldere care există. În acest tutorial, veți învăța toate metodele pentru a lista directoare recursiv.

Exemple de directoare de listă simplă

În primul rând, trebuie să știți cum să listați toate directoarele din sistemul dvs. Linux utilizând comanda simplă list. Deschideți terminalul din linia de comandă și încercați comanda ls de mai jos pentru a enumera numai directoarele. Nu va afișa doar directoarele, ci numărul total de sub-foldere și fișiere care se află în ele. Ieșirea arată folderele cu informații despre proprietarul, grupul, privilegiile de citire-scriere și data creării dosarelor.







$ ls -l



Pentru a lista toate directoarele și fișierele din sistemul dvs. Linux, trebuie să utilizați -la în loc de simplu -l în comanda list. Prin urmare, executați comanda actualizată pentru a face acest lucru. Ieșirea arată toate fișierele și folderele împreună cu informațiile lor suplimentare.



$ ls -la





Pentru a lista pur și simplu directoarele fără informații suplimentare, încercați comanda de mai jos urmată de semnalizatorul -d.

$ ls –d * /



De asemenea, puteți utiliza aceeași comandă cu puține modificări pentru a lista folderele împreună cu informațiile lor suplimentare. Trebuie doar să adăugați steagul -l în această comandă după cum urmează:

$ ls –l –d * /

Pentru a verifica doar numărul total de fișiere din directorul de acasă specific, încercați comanda prezentată mai jos în shell. Veți obține numărul total de fișiere din sistemul dvs. de operare Linux.

$ ls –l | egrep –v ‘^ d’

Exemplu de listare directoare recursiv

Există diferite tipuri de comenzi recursive disponibile în Linux Systems, care pot fi folosite pentru a lista directoare recursiv. Pentru a înțelege fiecare dintre ele separat, presupuneți că aveți 5 fișiere în directorul Linux numit Documente.

Lista recursiv folosind -lR Flag

Pentru a utiliza semnalul -lR în interogarea dvs. pentru a enumera recursiv toate directoarele sistemului dvs. Linux este prima metodă de a face acest lucru. La executarea comenzii list de mai jos, aceasta va lista toate folderele și subfolderele acestora împreună cu detaliile bonusurilor, așa cum se arată în rezultat.

$ ls -lR

Permiteți-ne să listăm recursiv toate fișierele sau folderele dintr-un anumit folder sau director al sistemului dvs. Linux. În acest scop, adăugați calea de locație a directorului specific pentru ao lista recursiv. Vrem să enumerăm recursiv toate fișierele și folderele din directorul Documente care se află în directorul principal folosind comanda actualizată mai jos. Ieșirea afișează toate fișierele și folderele din folderul Documente împreună cu informațiile sale suplimentare.

$ ls –lR / home / aqsayasin / Documents /

Lista recursiv folosind comanda Găsiți

Lăsați-vă clar faptul că nu toate sistemele Linux, de exemplu, macOS, sistemul de operare tip Unix, au posibilitatea de a utiliza -R pentru a enumera directoarele. În acest caz, există alte comenzi disponibile pentru a ne îndeplini nevoile, care sunt comanda Găsire și imprimare. În această comandă, vom da o cale către un folder, împreună cu pârghia utilizării comenzii -ls. Când -ls este utilizat în comandă, aceasta înseamnă că va afișa, de asemenea, informații suplimentare cu privire la fișierele și folderele rezidente ale unui anumit director. Încercați comanda menționată mai jos în shell pentru a lista recursiv toate fișierele și folderele din directorul Documente.

$ find / home / aqsayasin / Documents / -print -ls

Acum, trebuie să încercați aceeași instrucțiune în shell cu o mică schimbare. Vom evita să folosim steagul -ls în această comandă pentru a nu mai afișa informații suplimentare cu privire la fișiere. Executați interogarea de mai jos în shell și veți avea rezultatul afișat.

$ find / home / aqsayasin / Documents / -print

Lista recursiv folosind comanda -du

Să aruncăm o privire la un alt exemplu pentru a enumera recursiv fișierele sau directoarele cu o altă metodă nouă. De data aceasta, vom folosi comanda -du pentru a ne îndeplini scopul. Această comandă conține steagul -a. Împreună cu steagurile, trebuie să specificăm și locația directorului. Să executăm instrucțiunile de mai jos în shell-ul terminalului pentru a enumera recursiv toate folderele sau fișierele din directorul Documente. Ieșirea arată cele 5 înregistrări pentru aceasta, așa cum se arată mai jos. Puteți vedea că această comandă arată, de asemenea, numărul de mușcături care se află în fiecare fișier.

$ du –a / home / aqsayasin / Documents /

Lista recursiv folosind comanda arborelui

Nu în ultimul rând, avem o metodă de comandă în arbore foarte simplă și ușor de utilizat pentru a enumera recursiv fișierele sau folderele. Nu vom folosi niciun semnal în această comandă până acum. Trebuie să specificați locația directorului împreună cu arborele cuvintelor cheie. Să avem un exemplu folosind comanda de mai jos. Ieșirea arată ieșirea de tip ramificat a arborelui din directorul Documente. Afișează 0 directoare și 5 fișiere în ieșire.

$ tree / home / aqsayasin / Documents /

Să încercăm aceeași comandă arborescentă cu o locație diferită. De această dată, listăm recursiv dosarele din directorul „Acasă” al utilizatorului aqsayasin. Ieșirea arată ramurile folderului Acasă având un total de 14 foldere, sub-foldere și 5 fișiere diferite.

$ tree / home / aqsayasin /

Concluzie

Am încercat toate metodele recursive pentru a enumera recursiv directoare și fișiere, de exemplu, -lR flag, find and print, du și tree command