11 moduri de a lista și sorta fișierele pe Linux

există multe moduri de a lista fișierele și de a afișa informații despre ele pe sistemele Linux. Această postare examinează o serie de comenzi care oferă detalii despre fișiere și oferă opțiuni pentru personalizarea listărilor de fișiere pentru a vă satisface nevoile.

majoritatea comenzilor listează fișierele din directoarele individuale, în timp ce altele ajung la fel de adânc într-un sistem de fișiere pe cât doriți să arătați.

comanda principală pentru listarea fișierelor este, desigur, ls. Cu toate acestea, această comandă are un număr extins de opțiuni pentru găsirea și listarea doar a fișierelor pe care doriți să le vedeți. În plus, există întotdeauna găsi pentru a ajuta cu căutări de fișiere foarte specifice.

listarea fișierelor după nume

cel mai simplu mod de a lista fișierele după nume este pur și simplu să le listați folosind comanda ls. Listarea fișierelor după nume (ordine alfanumerică) este, la urma urmei, implicită. Puteți alege ls (fără detalii) sau ls-l (o mulțime de detalii) pentru a determina vizualizarea.

$ ls | head -68pgs.pdfAesthetics_Thank_You.pdfalien.pdfAnnual_Meeting_Agenda-20190602.pdfbigfile.bz2bin$ ls -l | head -6-rw-rw-r-- 1 shs shs 10886 Mar 22 2019 8pgs.pdf-rw-rw-r-- 1 shs shs 284003 May 11 2019 Aesthetics_Thank_You.pdf-rw-rw-r-- 1 shs shs 38282 Jan 24 2019 alien.pdf-rw-rw-r-- 1 shs shs 97358 May 19 2019 Annual_Meeting_20190602.pdf-rw-rw-r-- 1 shs shs 18115234 Apr 16 17:36 bigfile.bz2drwxrwxr-x 4 shs shs 8052736 Jul 10 13:17 bin

Pipe ieșirea ls la comanda mai mult, dacă doriți să revizuiască listarea dvs. un screenful la un moment dat.

listarea fișierelor în ordine inversă a numelui

pentru a inversa listarea fișierelor după nume, Adăugați opțiunea-r (reverse). Acest lucru va fi ca și cum ai întoarce listarea normală cu susul în jos.

$ ls -r$ ls -lr

listarea fișierelor după extensia de fișier

comanda ls nu analizează tipurile de fișiere după conținut, ci funcționează cu nume de fișiere. Există, totuși, o opțiune de comandă care poate lista fișierele prin extensie. Dacă adăugați opțiunea-X, ls va sorta fișierele după nume în cadrul fiecărei categorii de extensii. De exemplu, va lista mai întâi fișierele fără extensii (în ordine alfanumerică) urmate de fișiere cu extensii precum .1,. bz2, .c și așa mai departe.

listarea directoarelor numai

în mod implicit, comanda ls va afișa atât fișiere, cât și directoare. Dacă doriți să listați numai directoare,puteți utiliza opțiunea-D. Veți primi o listă ca aceasta:

$ ls -d */1/ backups/ modules/ projects/ templates/2/ html/ patches/ public/ videos/bin/ new/ private/ save/

listarea fișierelor după dimensiune

dacă doriți să listați fișierele în ordinea mărimii, adăugați opțiunea-s. Rețineți, totuși, că acest lucru nu vă va arăta de fapt dimensiunile (împreună cu alte detalii ale fișierului) decât dacă adăugați și opțiunea-l (listare lungă). Când listați fișiere după dimensiune, este în general util să vedeți că comanda face ceea ce ați cerut. Observați că implicit este să afișați mai întâi cele mai mari fișiere. Adăugați opțiunea-r pentru a inversa acest lucru (adică, ls-lSr).

$ ls -lStotal 959492-rw-rw-r-- 1 shs shs 357679381 Sep 19 2019 sav-linux-free-9.tgz-rw-rw-r-- 1 shs shs 103270400 Apr 16 17:38 bigfile-rw-rw-r-- 1 shs shs 79117862 Oct 5 2019 Nessus-8.7.1-ubuntu1110_amd64.deb

listarea fișierelor după proprietar

Dacă doriți să listați fișierele după proprietar (de ex., într-un director partajat), puteți trece ieșirea comenzii ls pentru a sorta și alege coloana proprietarului adăugând-k3 pentru a sorta pe al treilea câmp.

$ ls -l | sort -k3 | moretotal 56-rw-rw-r-- 1 dory shs 0 Aug 23 12:27 tasklistdrwx------ 2 gdm gdm 4096 Aug 21 17:12 tracker-extract-files.121srwxr-xr-x 1 root root 0 Aug 21 17:12 ntf_listenerc0c6b8b4567drwxr-xr-x 2 root root 4096 Aug 21 17:12 hsperfdata_root
^
|

de fapt, puteți sorta pe orice domeniu în acest fel (de exemplu, an). Aveți grijă să adăugați un „n” – – k5n-dacă sortați pe un câmp numeric sau veți sorta în ordine alfanumerică. Această tehnică de sortare este utilă și pentru sortarea conținutului fișierelor, nu doar pentru listarea fișierelor.

listarea fișierelor după vârstă

utilizați opțiunea-t pentru a lista fișierele în ordinea vârstei – cât de noi sunt. Adăugați opțiunea-r pentru a obține cele mai recente fișiere actualizate care apar ultima dată în listă. Folosesc acest alias pentru a-mi arăta o listă a fișierelor pe care le-am actualizat cel mai recent:

$ alias recent='ls -ltr | tail -8'

rețineți că timpul de schimbare și modificare a fișierelor este diferit. Opțiunile-c (modificare) și-t (modificare) nu vor da întotdeauna aceleași rezultate. Dacă modificați permisiunile pentru un fișier și nimic altceva,- c va pune fișierele în partea de sus a ieșirii ls, în timp ce-t nu. Dacă sunteți curios de diferență, uitați-vă la ieșirea comenzii stat.

$ stat ckacct File: ckacct Size: 200 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2049d Inode: 829041 Links: 1Access: (0750/-rwxr-x---) Uid: ( 1000/ shs) Gid: ( 1000/ shs)Access: 2020-08-20 16:10:11.063015008 -0400Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changesChange: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes Birth: -

listarea fișierelor după grup

pentru a sorta fișierele după grupurile asociate, puteți trece ieșirea dintr-o listă lungă la comanda sortare și spuneți-i să sorteze în coloana 4.

$ ls -l | sort -k4

listarea fișierelor după data de acces

pentru a lista fișierele după data de acces (cel mai recent accesat primul), utilizați opțiunile-ltu. „U „impune ordinea de listare” după data de acces”.

$ ls -ltutotal 959500-rwxr-x--- 1 shs shs 200 Aug 24 09:42 ckacct <== most recently used-rw-rw-r-- 1 shs shs 1335 Aug 23 17:45 lte

listarea mai multor fișiere pe o singură linie

uneori, o listă de fișiere condensată este mai potrivită pentru sarcina la îndemână. Comanda ls are chiar opțiuni pentru asta. Pentru a lista fișierele pe cât mai puține linii posibil, puteți utiliza –format=comma pentru a separa numele fișierelor cu virgule ca în această comandă:

$ ls --format=comma1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19,192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf,'2019_HOHO_application working.pdf' …

preferați spațiul alb? Utilizați — format=peste loc.

$ ls --format=across z*z zip zipfiles zipfiles1.bat zipfiles2.batzipfiles3.bat zipfiles4.bat zipfiles.bat zoom_amd64.deb zoomap.pdfzoom-mtg

adăugarea adâncimii căutărilor dvs.

în timp ce ls listează în general fișiere într-un singur director, puteți alege în schimb să listați recursiv fișierele utilizând opțiunile-R, aprofundând întreaga adâncime a directoarelor:

$ ls -R zzzzz | grep -v "^$"zzzzz:zzzzzzzzz/zzzz:zzzzzzzz/zzzz/zzz:zzzzzzz/zzzz/zzz/zz:zzzzzz/zzzz/zzz/zz/z:sleeping

alternativ, puteți utiliza o comandă find cu o specificație de adâncime limitată sau nelimitată. În această comandă, instruim comanda find să caute doar în trei niveluri de directoare:

$ find zzzzz -maxdepth 3zzzzzzzzzz/zzzzzzzzz/zzzz/zzzzzzzz/zzzz/zzz/zz

alegerea ls vs find

când trebuie să listați fișiere care îndeplinesc o listă foarte selectivă de cerințe, comanda find este probabil un instrument mai bun de utilizat decât ls.

spre deosebire de ls, comanda find arată cât mai profund posibil dacă nu o constrângeți. De asemenea, are multe alte opțiuni și o comandă-exec care vă permite să efectuați anumite acțiuni specifice odată ce găsiți fișierele pe care le căutați.

Wrap-Up

comanda ls are o mulțime de opțiuni pentru listarea fișierelor. Verifică-le. S-ar putea găsi unele pe care le veți iubi.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *