2010-08-03 17:58:26 +0000 2010-08-03 17:58:26 +0000
142
142

Lijst met de grootte van de huidige map met de terminal?

Ik wil een lijst van de mappen uit de huidige map of een die ik met hun grootte specificeer.

Ik heb geprobeerd met du maar ik krijg alleen de grootte van de mappen die ik specificeer (du . ./f1), en ls toont niet de grootte van de mappen.

Hoe doe ik dit zonder enige scripting ?

Antwoorden (9)

223
223
223
2010-08-03 18:29:55 +0000

Als je alle mappen in de huidige directory wilt tonen:

$ du -sh */
788K foo/
500K bar/
931K baz/

Om ze te tonen vanaf een andere directory:

$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/

Als je er zeker van wilt zijn dat mappen met namen die beginnen met een punt eerst worden opgenomen, doe dan shopt -s dotglob.

19
19
19
2013-03-02 05:23:56 +0000

Op een Mac wordt de optie –maximale diepte verdrongen door -d [diepte]. Dus, om een menselijk leesbare lijst van je root drive plus 2 niveaus diep te zien, gebruik je het volgende:

du -hd 2 /*

Opmerking: dit commando zal de bovenste twee mapniveaus van je root blootleggen. Dit omvat het doorkruisen van een niveau in uw Volumes_, en zal de samenvattende maten van elke top-niveau directory in elk van uw bijgevoegde volumes weergeven. Afhankelijk van wat u hebt aangehecht, kan het enige tijd duren voordat dit commando is voltooid.

14
14
14
2010-08-03 19:32:55 +0000

Een andere mogelijkheid is de –maximale diepte-optie.

du -h --max-depth=1 .

geeft een overzicht van alle mappen en bestanden onder de huidige map met grootte.

Depth 2 geeft een overzicht van nog een niveau van mappen.

5
5
5
2010-08-03 18:09:10 +0000

Probeer:

$ du -s ./f1

of

$ du -sh ./f1

voor vriendelijker leesbare maten.

4
4
4
2018-03-02 22:17:45 +0000

Voortbouwend op het geaccepteerde antwoord, zal dit commando u de grootte van de mappen in de directory laten zien, en zal ze ook op grootte weergeven zodat u ze gemakkelijker kunt interpreteren:

$ du -sh */ | sort -rn
2
2
2
2015-06-30 15:39:04 +0000

$ du --max-depth=1 /var/www/ | sort -n -r

2
2
2
2016-06-12 12:26:54 +0000

Het is de moeite waard om het NCurses Disk Usage shell commando te noemen.

Ncdu is een schijfgebruik-analyzer met een ncurses-interface. Het is ontworpen om ruimtevarkens te vinden op een externe server waar je geen volledige grafische setup beschikbaar hebt, maar het is een nuttig hulpmiddel, zelfs op gewone desktop systemen. Ncdu streeft ernaar om snel, eenvoudig en gemakkelijk te gebruiken te zijn, en zou in staat moeten zijn om in elke minimale POSIX-achtige omgeving te draaien met geïnstalleerde ncurses.

1
1
1
2017-03-27 23:47:09 +0000

Hier is een POSIX-script dat werkt met:

  • Een bestand
  • Bestanden
  • Een directory
  • Directories #!/bin/sh ls -ARgo "$@" | awk '{q += $3} END {print q}' Bron
1
1
1
2017-09-28 15:32:12 +0000

Op Mac kunt u de GNU (Linux) implementatie van du met Homebrew (brew install coreutils) installeren. Dan bijvoorbeeld:

gdu folder -shL --exclude=.git

waarbij

  • gdu de naam is die gegeven wordt aan de GNU implementatie van du (standaard verbergt Homebrew /usr/bin/du niet);
  • s produceert een totaal totaal voor de opgegeven map (weglaten als je de uitsplitsing wilt zien);
  • h geeft menselijk leesbare formaten;
  • L volgt symlinks;
  • --exclude=.git sluit de git directory binnen de opgegeven map uit (dit is slechts een voorbeeld).

U kunt meer mappen negeren door --exclude=blah toe te voegen. U kunt ook meerdere mappen tegelijk opgeven (d.w.z. gdu folder1 folder2 ...), en in dat geval kunt u alle subtotalen in een enkele grootte combineren met de optie c.