Android

Hvordan få størrelsen på en katalog i Linux

The mind behind Linux | Linus Torvalds

The mind behind Linux | Linus Torvalds

Innholdsfortegnelse:

Anonim

Når du viser innholdet i en katalog ved å bruke kommandoen ls , har du kanskje lagt merke til at størrelsen på katalogene nesten alltid er 4096 byte (4 KB). Det er størrelsen på plassen på disken som brukes til å lagre metainformasjonen for katalogen, ikke hva den inneholder.

Kommandoen du vil bruke for å få den faktiske størrelsen på en katalog, er du , som er en forkortelse for "diskbruk".

Få størrelse på en katalog

du kommandoen viser hvor mye filplass som brukes av de angitte filene eller katalogene. Hvis den angitte banen er en katalog, oppsummerer du diskbruken av hver underkatalog i den katalogen. Hvis ingen bane er spesifisert, rapporterer du om diskbruken til den gjeldende arbeidskatalogen.

Når du påberopes uten alternativer, viser du diskbruken for den gitte katalogen og hver av underkatalogene i byte.

Vanligvis ønsker du å vise plassen som er opptatt av katalogen i et menneskelig lesbart format. For å få den totale størrelsen på /var katalogen, vil du for eksempel kjøre følgende kommando:

sudo du -sh /var

Utgangen vil se slik ut:

85G /var

La oss forklare kommandoen og dens argumenter:

  • Kommandoen starter med sudo fordi de fleste filer og kataloger i /var katalogen eies av rotbrukeren og ikke er lesbare av de vanlige brukerne. Hvis du utelater sudo vil du kommandoen skrive ut "du: kan ikke lese katalog". s - Vis bare totalstørrelsen på den angitte katalogen, ikke vis totalstørrelser for underkataloger. h - Utskriftsstørrelser i et menneskelig lesbart format ( h ). /var - Stien til katalogen du vil få størrelsen.

Hva om du vil vise diskbruken til underkatalogene på første nivå? Du har to alternativer. Den første er å bruke stjerne-symbolet ( * ) som vist nedenfor, noe som betyr "samsvarer med alt som ikke starter med en periode ( . )". Alternativet -c forteller du å trykke en total sum av alle størrelser:

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

En annen måte å få en rapport om diskbruken til underkatalogene på første nivå er å bruke alternativet - --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

Som standard viser du kommandoen diskplass som brukes av katalogen eller filen. Hvis du vil finne den tilsynelatende størrelsen på en katalog, bruker du alternativet --apparent-size . Den "tilsynelatende størrelsen" på en fil er hvor mye data som faktisk er i filen.

sudo du -sh --apparent-size /var

Når du overfører en katalog via SCP, Rsync. Eller SFTP, er datamengden som overføres over nettverket den tilsynelatende størrelsen på filene. Dette er grunnen til at størrelsen på plassen som brukes på kilden når den vises med du (uten --apparent-size ) ikke er den samme som størrelsen på målet.

du kommandoen kan også kombineres med andre kommandoer med rør.

For å skrive ut de 5 største katalogene i /var katalogen, vil du for eksempel rense utdataene fra du til sort å sortere katalogene etter deres størrelse og deretter sende utdataene til hovedkommandoen som bare vil skrive ut de fem øverste katalogene.:

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

Konklusjon

I Linux kan du få størrelsen på en katalog ved å bruke kommandoen du.

du terminal disk