03/29/2024

Cum să utilizați comanda ls pentru a lista fișiere și directoare pe Linux

Folosim comanda Linux ls în fiecare zi fără să ne gândim la asta. E pacat. Acordați-i puțină atenție și veți găsi multe opțiuni utile, inclusiv unele pe care ar trebui să le adăugați la arsenalul de linie de comandă.

ls Listează fișiere și directoare

Comanda ls este probabil prima comandă pe care o întâlnesc majoritatea utilizatorilor Linux. Aceia dintre noi care stau în jurul liniei de comandă o folosesc zi de zi fără să se gândească la asta. Asta ar putea explica de ce există mai mult în această comandă decât își dau seama majoritatea utilizatorilor. Listăm fișierele cu el pentru a vedea ce se află într-un director. Listăm fișierele în format lung atunci când vrem să ne uităm la permisiunile unui fișier. Dincolo de asta, primește puțină atenție.

Comanda ls este una dintre acele comenzi cu o mulțime de opțiuni. Poate că asta face parte din problemă. Există atât de multe opțiuni, cum le cerneți pentru a le găsi pe cele utile? Și după ce le-ai găsit, cum îți amintești de ele?

Permutările utile ale comenzii ls cu șirurile lor de opțiuni și parametri sunt candidații perfecti pentru aliasuri. De fapt, în majoritatea distribuțiilor, ceea ce considerați ca fiind comanda „naked” ls este de fapt un alias. Printre altele, comanda tip poate fi folosită pentru arată definiția de bază a aliasurilor. Să ne uităm la definiția lui ls:

tastați ls

Parametrii –color=auto sunt incluși automat de fiecare dată când utilizați comanda ls. Acesta este ceea ce oferă culorile diferite pentru diferitele tipuri de fișiere din listări.

Listări simple

Toți cei care au petrecut ceva timp folosind terminalul Linux știu că, implicit, ls listează fișierele și directoarele din directorul curent.

ls

Dacă doriți ca înregistrarea dvs. să fie produsă într-o singură coloană, utilizați opțiunea -1 (un fișier pe linie):

ls -1

Vom discuta despre acest nume de fișier cu aspect ciudat din partea de sus a listei într-un minut.

Folosind ls pe diferite directoare

Pentru ca ls să listeze fișierele dintr-un alt director decât directorul curent, transmiteți calea către director către ls pe linia de comandă. De asemenea, puteți transmite mai mult de un director la ls și le puteți lista unul după altul. Aici, îi cerem lui ls să listeze fișierele în două directoare, unul numit „Ajutor” și celălalt numit „gc_help”.

ls Help gc_help

Când ls a listat conținutul primului director, listează conținutul celui de-al doilea. Tipărește numele fiecărui director pe măsură ce le procesează:

  Cei mai buni 6 clienți Telegram Chat pentru Linux

Utilizarea modelelor de fișiere

Pentru a lista selectiv un set de fișiere, utilizați potrivirea modelelor. Semnul întrebării „?” va reprezenta orice caracter, iar asteriscul „*” va reprezenta orice șir de caractere. Pentru a lista orice fișiere sau directoare care au nume care încep cu „ip_”, utilizați acest format:

ls ip_*

Pentru a lista fișierele care au extensii „.c”, utilizați acest format:

ls *.c

De asemenea, puteți folosi ls cu grep și folosiți grep capabilități de potrivire a modelelor. Să căutăm orice fișiere care au șirul „_pin_” în numele lor:

ls | grep _pin_

Acest lucru este aproape la fel cu utilizarea ls pe cont propriu, cu două caractere jokere:

ls | grep _pin_
ls *_pin_*

De ce aproape la fel? Observați diferitele aspecte. grep forțează ieșirea la un singur nume de fișier pe format de linie.

Caractere care nu se imprimă

Este posibil să vă găsiți cu un nume de fișier care are un neimprimare sau caracter de control în numele său de fișier. De obicei, acest lucru se poate întâmpla atunci când extindeți o arhivă pe care ați descărcat-o de pe web sau ați preluat un depozit git, iar autorul original a făcut o greșeală creând un fișier, dar nu l-a identificat.

Fișierul nostru ciudat este unul dintre acestea:

Dacă îl privim în browserul de fișiere și apăsăm „F2” pentru a-l redenumi, caracterele care nu se imprimă sunt reprezentate de un simbol ciudat.

Puteți utiliza opțiunea -b (escape) pentru a vă permite să vedeți ce conține de fapt numele fișierului. Această opțiune determină ls să folosească secvențele de escape ale limbaj de programare C pentru a reprezenta caracterele de control.

ls -b a*

Personajul misterios se dezvăluie a fi un caracter newline, reprezentat în C ca „n”.

Ignorarea fișierelor

Pentru ca anumite fișiere să fie omise dintr-o listă, utilizați opțiunea –hide. Să presupunem că nu doriți să vedeți fișierele de rezervă „.bak” în listă. Ai putea folosi această comandă:

ls
ls --hide=*.bak

Fișierele „.bak” nu sunt incluse în a doua listă.

Lista cu format lung

Opțiunea -l (lista lungă) face ca ls să furnizeze informații detaliate despre fiecare fișier.

ls -l

Există o mulțime de informații aici, așa că hai să trecem prin ele.

Primul lucru pe care ls afișează este dimensiunea totală a tuturor fișierelor din listă. Apoi fiecare fișier sau director este afișat singur pe o linie.

Primul set de zece litere și liniuțe sunt tipul de fișier și permisiunile de proprietar, grup și alte fișiere.

Primul caracter reprezintă tipul fișierului. Va fi unul dintre:

–: Un dosar obișnuit.
b: Un fișier special bloc.
c: Un fișier special de caractere.
d: Un director.
l: O legătură simbolică.
n: Un fișier de rețea.
p: O conductă numită.
s: O priză.

Următoarele nouă caractere sunt trei grupuri de trei caractere afișate contiguu. Fiecare grup de trei reprezintă permisiunile de citire, scriere și executare, în această ordine. Dacă se acordă permisiunea, va fi prezent un r, w sau x. Dacă permisiunea nu este acordată, este afișată o cratimă –.

  Cum să utilizați managerul de parole Buttercup pe Linux

Primul set de trei caractere reprezintă permisiunile pentru proprietarul fișierului. Al doilea set de trei permisiuni este pentru membrii grupului, iar ultimul set de trei permisiuni este pentru alții.

Uneori, permisiunea de executare pentru proprietar este reprezentată de un s. Acesta este setuid pic. Dacă este prezent, înseamnă că fișierul este executat cu privilegiile proprietarului fișierului, nu al utilizatorului care execută fișierul.

Permisiunea de execuție pentru grup poate fi, de asemenea, un s. Acesta este setgid pic. Când acest lucru este aplicat unui fișier, înseamnă că fișierul va fi executat cu privilegiile grupului proprietarului. Când este folosit cu un director, orice fișiere creat în interiorul acestuia își vor lua permisiunile de grup din directorul în care sunt create, nu de la utilizatorul care creează fișierul.

Permisiunea de execuție pentru celelalte poate fi uneori reprezentată de un t. Acesta este un pic lipicios. De obicei se aplică directoarelor. Dacă acest lucru este setat, indiferent de privilegiile de scriere și de executare care sunt setate pentru fișierele din director, numai proprietarul fișierului, proprietarul directorului sau utilizatorul root pot redenumi sau șterge fișierele din director.

O utilizare obișnuită pentru sticky bit este în foldere precum „/tmp”. Acesta poate fi scris de toți utilizatorii de pe computer. Elementul sticky de pe director asigură că utilizatorii și procesele lansate de utilizatori pot doar redenumi sau șterge propriile fișiere temporare.

Putem vedea sticky bit în directorul „/tmp”. Observați utilizarea opțiunii -d (director). Acest lucru face ca ls să raporteze detaliile directorului. Fără această opțiune, ls va raporta fișierele din director.

ls -l -d /tmp

Numărul care urmează după permisiuni este numărul de link-uri hard către fișier sau director. Pentru un fișier, acesta este de obicei unul, dar dacă sunt create alte legături hard, acest număr va crește. Un director are de obicei cel puțin două legături hard. Unul este un link către sine, iar celălalt este intrarea sa în directorul părinte.

Numele proprietarului și al grupului sunt afișate în continuare. Acestea sunt urmate de dimensiunea fișierului și data ultimei modificări a fișierului. În cele din urmă, este dat numele fișierului.

Dimensiuni de fișiere care pot fi citite de oameni

A avea dimensiunile fișierelor în octeți nu este întotdeauna convenabil. Pentru a vedea dimensiunile fișierelor în cele mai potrivite unități (kiloocteți, megaocteți etc.), utilizați opțiunea -h (lizibilă de om):

ls -l -h

Se afișează fișierele ascunse

Pentru a vedea fișierele ascunse, utilizați opțiunea -a (toate):

ls -l -a

Cele două intrări „.” și „..” reprezintă directorul curent și, respectiv, directorul părinte. Un fișier numit „.base_settings” este acum vizibil pentru prima dată.

  Cele mai bune 5 derivate Gentoo Linux de încercat

Omitând . și .. din Listări

Dacă nu doriți ca înregistrarea dvs. să fie aglomerată cu „.” și intrările „..”, dar doriți să vedeți fișierele ascunse, utilizați opțiunea -A (aproape toate):

ls -l -A

Fișierul ascuns este încă listat, dar „.” și intrările „..” sunt suprimate.

Listarea directoarelor în mod recursiv

Pentru ca ls să listeze fișierele din toate subdirectoarele, utilizați opțiunea -R (recursivă).

ls -l -R

ls își parcurge întregul arbore de directoare de sub directorul de pornire și listează fișierele din fiecare subdirector.

Afișarea UID și GID

Pentru a afișa ID-ul utilizatorului și ID-ul grupului în loc de numele de utilizator și numele grupului, utilizați opțiunea -n (uid numeric și gid).

ls -n

Sortarea listelor

Puteți sorta lista după extensie, dimensiunea fișierului sau timpul de modificare. Aceste opțiuni nu trebuie să fie utilizate cu formatul de listare lungă, dar de obicei este logic să faceți acest lucru. Dacă sortați după dimensiunea fișierului, este logic să vedeți dimensiunile fișierelor în listă. Când sortați după tipul de extensie, formatul de listă lungă nu este atât de important.

Pentru a sorta după extensie, utilizați opțiunea -X (sortare după extensie).

ls -X -1

Directoarele sunt listate mai întâi (fără extensii deloc), apoi restul urmează în ordine alfabetică, în funcție de extensii.

Pentru a sorta după dimensiunea fișierului, utilizați opțiunea -S (sortare după dimensiunea fișierului).

ls -l -h -S

Ordinea de sortare este de la cea mai mare la cea mai mică.

Pentru a sorta lista după ora modificării, utilizați opțiunea -t (sortare după ora modificării).

ls -l -t

Lista este sortată după ora modificării.

Dacă ora de modificare a fișierului este în anul curent, informațiile afișate sunt luna, ziua și ora. Dacă data modificării nu a fost în anul curent, informațiile care sunt afișate sunt luna, ziua și anul.

O modalitate rapidă de a obține cele mai noi și mai vechi fișiere într-un director este să utilizați ls cu comenzile head și tail.

Pentru a obține cel mai nou fișier sau director, utilizați această comandă:

ls -t | head -1

Pentru a obține cel mai vechi fișier sau director, utilizați această comandă:

ls -t | tail -1

Pentru a inversa ordinea de sortare

Pentru a inversa oricare dintre ordinele de sortare, utilizați opțiunea -r (inversare).

ls -l -h -S -r

Lista este acum ordonată de la cel mai mic fișier la cel mai mare fișier.

Și mai sunt

Consultați pagina de manual pentru ls, mai sunt multe variante. Unele dintre ele satisfac cazuri de utilizare oarecum obscure, dar din când în când, te vei bucura că știi despre ele.

Trebuie să vedeți marcajele de timp ale fișierelor cu precizia maximă pe care o poate oferi Linux? Utilizați opțiunea cu normă întreagă:

ls --full-time

Poate doriți să vedeți numărul inodul al fișierelor? Utilizați opțiunea inod:

ls -i

Lucrați la un afișaj monocrom și doriți să eliminați orice risc de confuzie a fișierelor pentru directoare și link-uri? Utilizați opțiunea de clasificare și ls va adăuga una dintre acestea la fiecare intrare de listă:

/: Un director.
@: O legătură simbolică.
|: O conductă numită.
=: O priză.
*: Un fișier executabil

ls -F

Sapă ceva. Vei descoperi că ls este un filon bogat și vei continua să apari pietre prețioase.