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

Lista rozmiarów aktualnego katalogu z terminalem?

Chcę listę folderów z aktualnego katalogu lub takich, które podaję z ich rozmiarem.

Próbowałem z du, ale otrzymałem tylko rozmiar katalogów, które podaję (du . ./f1), a ls nie pokazuje rozmiaru katalogów.

Jak to zrobić bez skryptów ?

Odpowiedzi (9)

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

Jeśli chcesz pokazać wszystkie katalogi w aktualnym katalogu:

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

Aby pokazać je zaczynając od innego katalogu:

$ 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/

Jeśli chcesz się upewnić, że katalogi z nazwami zaczynającymi się od kropki są dołączone do shopt -s dotglob.

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

Na komputerze Mac opcja –max-depth jest zastąpiona przez -d [głębokość]. Tak więc, aby zobaczyć czytelną dla człowieka listę dysku głównego plus 2 poziomy głębokości, użyj następującego polecenia:

du -hd 2 /*

Uwaga: to polecenie ujawni dwa górne poziomy katalogów poza Twoim głównym katalogiem. Obejmuje to przejście jednego poziomu do twojego Volumes_, i wyświetli sumaryczne rozmiary każdego górnego poziomu katalogu w każdym z dołączonych woluminów. W zależności od tego, co załączyłeś, wykonanie tego polecenia może zająć trochę czasu.

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

Kolejny aproach to opcja –max deep.

du -h --max-depth=1 .

Wymieni wszystkie katalogi i pliki pod aktualnym folderem z rozmiarem.

Depth 2 wymieniłby jeszcze jeden poziom folderów.

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

Spróbuj:

$ du -s ./f1

lub

$ du -sh ./f1

dla bardziej przyjaznych rozmiarów czytelnych.

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

Bazując na zaakceptowanej odpowiedzi, to polecenie pokaże Ci rozmiary folderów w katalogu, i wymieni je również według rozmiaru, abyś mógł łatwiej interpretować:

$ 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

Warto wspomnieć o poleceniu powłoki NCurses Disk Usage .

Ncdu to analizator zużycia dysku z interfejsem ncurses. Został on zaprojektowany do znajdowania space hogs na zdalnym serwerze, gdzie nie jest dostępna cała graficzna konfiguracja, ale jest to użyteczne narzędzie nawet na zwykłych systemach pulpitu. Ncdu ma być szybki, prosty i łatwy w użyciu, i powinien być w stanie działać w każdym minimalnym środowisku POSIX-owym z zainstalowanymi ncurses.

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

Oto skrypt POSIX, który będzie współpracował z:

  • A file
  • Files
  • A directory
  • Directories
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

Source

1
1
1
2017-09-28 15:32:12 +0000

Na Macu możesz zainstalować implementację GNU (Linux) du z homebrajskim (brew install coreutils). Następnie, na przykład:

gdu folder -shL --exclude=.git

gdzie

  • gdu jest nazwą nadaną implementacji GNU z du (domyślnie Homebrew nie ukrywa /usr/bin/du);
  • s wytwarza sumę całkowitą dla podanego folderu (pomiń jeśli chcesz zobaczyć rozkład);
  • h wyświetla rozmiary czytelne dla człowieka;
  • L podąża za symlacjami;
  • --exclude=.git wyłącza katalog git w podanym folderze (to tylko przykład).

Możesz zignorować więcej folderów dodając --exclude=blah. Możesz także określić kilka folderów na raz (np. gdu folder1 folder2 ...), i w takim przypadku możesz połączyć wszystkie subtotale w jeden rozmiar za pomocą opcji c.