Android

Cum să obțineți dimensiunea unui director în linux

► Cum Caut Text intr-un Fisier din Terminalul Linux ? | Invata Linux Ep. 19

► Cum Caut Text intr-un Fisier din Terminalul Linux ? | Invata Linux Ep. 19

Cuprins:

Anonim

Când enumerați conținutul unui director folosind comanda ls , este posibil să fi observat că dimensiunea directoarelor este aproape întotdeauna de 4096 octeți (4 KB). Aceasta este dimensiunea spațiului de pe disc care este utilizat pentru a stoca meta-informațiile pentru director, nu ceea ce conține.

Comanda pe care doriți să o utilizați pentru a obține dimensiunea reală a unui director este du , care este scurt pentru „utilizarea discului”.

Obținerea dimensiunii unui director

Comanda du afișează cantitatea de spațiu de fișier utilizat de fișierele sau directoarele specificate. Dacă calea specificată este un director, rezumă utilizarea discului pentru fiecare subdirector din acel director. Dacă nu este specificată nicio cale, raportează utilizarea discului din directorul de lucru curent.

Când este invocat fără nicio opțiune, du afișează utilizarea discului din directorul dat și fiecare din subdirectoriile sale în octeți.

De obicei, doriți să afișați spațiul ocupat de director într-un format care poate fi citit de om. De exemplu, pentru a obține dimensiunea totală a directorului /var , aveți să executați următoarea comandă:

sudo du -sh /var

Rezultatul va arăta astfel:

85G /var

Să explicăm comanda și argumentele acesteia:

  • Comanda începe cu sudo deoarece majoritatea fișierelor și directoarelor din directorul /var sunt deținute de utilizatorul root și nu pot fi citite de utilizatorii obișnuiți. Dacă omiteți sudo , comanda du va imprima „du: nu poate citi directorul”. s - Afișați doar dimensiunea totală a directorului specificat, nu afișați totalul dimensiunii fișierelor pentru subdirectorii. h - Dimensiuni de tipărire într-un format care poate fi citit de către oameni ( h ). /var - Calea către directorul pe care doriți să obțineți dimensiunea.

Ce se întâmplă dacă doriți să afișați utilizarea discului din subdirectoarele de prim nivel? Aveți două opțiuni. Primul este să folosești simbolul asteriscului ( * ) așa cum este arătat mai jos, ceea ce înseamnă „potriviți cu tot ce nu începe cu o perioadă ( . )”. Opțiunea -c îi recomandă să imprime un număr mare de toate dimensiunile:

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

Un alt mod de a obține un raport despre utilizarea discului din subdirectoarele de prim nivel este utilizarea opțiunii --max-depth :

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

În mod implicit, comanda du arată spațiul pe disc folosit de director sau de fișier. Pentru a găsi dimensiunea aparentă a unui director, utilizați opțiunea --apparent-size . „Dimensiunea aparentă” a unui fișier este cât de multe date sunt de fapt în fișier.

sudo du -sh --apparent-size /var

Când transferați un director prin SCP, Rsync. Sau SFTP, cantitatea de date care este transferată prin rețea este dimensiunea aparentă a fișierelor. Acesta este motivul pentru care dimensiunea spațiului de pe discul folosit pe sursă atunci când este afișat cu du (fără --apparent-size ) nu este aceeași cu dimensiunea de pe țintă.

Comanda du poate fi combinată și cu alte comenzi cu conducte.

De exemplu, pentru a tipări cele mai mari 5 directoare din directorul /var , ar trebui să canalizați ieșirea de la du la comanda de sortare pentru a sorta directoarele după dimensiunea lor și apoi țeavă ieșirea la comanda head care va tipări doar primele 5 directoare:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

Concluzie

În Linux, puteți obține dimensiunea unui director folosind comanda du .

du terminal terminal