Als je de inhoud van een directory opsomt met het ls
commando, heb je misschien gemerkt dat de grootte van de mappen is bijna altijd 4096 bytes (4 KB). Dat is de grootte van de ruimte op de schijf die wordt gebruikt om de meta-informatie voor de directory op te slaan, niet wat deze bevat.
Het commando dat je wilt gebruiken om de werkelijke grootte van een directory te krijgen is du
, wat een afkorting is voor “disk usage”.
De grootte van een directory ophalen #
De geeft de hoeveelheid bestandsruimte weer die wordt gebruikt door de opgegeven bestanden of mappen. Als het opgegeven pad een map is, geeft du
een overzicht van het schijfgebruik van elke submap in die map . Als er geen pad is opgegeven, rapporteert du
het schijfgebruik van de huidige werkdirectory.
Indien aangeroepen zonder enige opties, du
geeft het schijfgebruik van de opgegeven map en elk van zijn submappen weer in bytes.
Meestal wilt u de ruimte die door de map wordt ingenomen in een voor mensen leesbaar formaat weergeven. om de totale grootte van de /var
directory, zou je het volgende commando uitvoeren:
De output zal er ongeveer zo uitzien:
Laten we het commando en zijn argumenten uitleggen:
- Het commando begint met
sudo
omdat de meeste bestanden en mappen in de/var
directory zijn eigendom van de rootgebruiker en kunnen niet worden gelezen door de gewone gebruikers. Als jesudo
weglaat, zal hetdu
commando “du: kan map niet lezen” afdrukken. -
s
– Geef alleen de totale grootte van de opgegeven map weer, geef geen totalen van de bestandsgrootte weer voor submappen. -
h
– Afdrukgroottes in een door mensen leesbare indeling (h
). -
/var
– Het pad naar de map die u wilt ophalen de grootte.
Wat als je het schijfgebruik van de submappen op het eerste niveau wilt weergeven? Je hebt twee opties. De eerste is om het asterisk-symbool (*
) zoals hieronder getoond, wat betekent” match alles wat niet begint met een punt (.
) “. De -c
optie vertelt du
om een totaal van alle formaten af te drukken:
Een andere manier om een rapport te krijgen over het schijfgebruik van de submappen op het eerste niveau is door de optie --max-depth
te gebruiken:
Standaard toont het du
commando de schijfruimte die wordt gebruikt door de directory of het bestand. Gebruik de optie --apparent-size
om de schijnbare grootte van een directory te vinden. De “schijnbare grootte” van een bestand is hoeveel gegevens er werkelijk in het bestand zitten.
Wanneer u een directory overzet via SCP, Rsync. Of SFTP de hoeveelheid gegevens die via het netwerk wordt overgedragen, is de schijnbare grootte van de bestanden. Dit is de reden waarom de grootte van de schijfruimte die wordt gebruikt op de bron wanneer deze wordt weergegeven met du
(zonder --apparent-size
) is niet hetzelfde als de grootte op het doel.
Het du
commando kan ook worden gecombineerd met andere commando’s met pipes.
Om bijvoorbeeld de 5 grootste mappen in de /var
directory af te drukken, zou je de uitvoer van du
naar het sort
commando om de mappen op grootte te sorteren en dan de uitvoer naar het head
commando te sturen dat alleen zal afdrukken de top 5 mappen:
Conclusie #
In Linux kan de grootte van een directory krijgen met het du
commando.