Her bir alt dizin boyutunu Bash'deki bir satır komutunu kullanarak liste biçiminde göster.


100

Dizinlerin ve büyüklüklerin bir listesini, yaptığınız zaman nasıl alacağınız gibi bir liste biçiminde almak istiyorum ls -l.

Mesele şu ki, bunu yapabilen tek bir komut satırı var mı? Görüyorum ki, diğerleri bunu basmak için uzun komutlara sahipler. Bu çok uzun.

Hangi komut bunu yapabilir veya kolayca yazılabilen komutların kombinasyonu? du -hverir, ancak istediğim olmayan tüm alt klasörleri görüntüler. Sadece geçerli dizin klasörleri.

Yanıtlar:


71

Muhtemelen büyüklüğüne göre sıralanan dizinleri görmek istersiniz:

$ du -hs * | sort -hr

856M    lib
746M    share
612M    lib64
312M    src
267M    java
239M    bin
179M    sbin
173M    local
93M     i686-w64-mingw32
72M     libexec
26M     include
20M     puppet
772K    X11R6
20K     man
4.0K    games
4.0K    etc
0       tmp

Bu, dizinde çok sayıda giriş olması durumunda çalışmaz. bash: /run/current-system/sw/bin/du: Argument list too long
Chris Stryczynski

123

Bunu dene

du -h --max-depth=1

Çıktı

oliver@home:/usr$ sudo du -h --max-depth=1
24M     ./include
20M     ./sbin
228M    ./local
4.0K    ./src
520M    ./lib
8.0K    ./games
1.3G    ./share
255M    ./bin
2.4G    .

Alternatif

Eğer --max-depth=1zevkinize için biraz fazla uzun, ayrıca kullanmayı deneyebilirsiniz:

du -h -s *

Bu -s( --summarize) işlevini kullanır ve yalnızca varsayılan olarak klasörün boyutunu yazdırır. Geçerli çalışma dizinindeki ( *) tüm öğeleri ileterek , olduğu gibi benzer çıktı üretir --max-depth=1:

Çıktı

oliver@cloud:/usr$ sudo du -h -s *
255M    bin
8.0K    games
24M     include
520M    lib
0       lib64
228M    local
20M     sbin
1.3G    share
4.0K    src

Fark incedir. İlk yaklaşım mevcut çalışma dizininin toplam boyutunu ve içinde bulunan tüm klasörlerin toplam boyutunu ... ancak sadece 1 derinliğe kadar gösterecektir.

İkinci yaklaşım, geçen tüm öğelerin toplam boyutunu ayrı ayrı hesaplar . Bu nedenle, lib64çıktıdaki sembolik bağlantıyı içerir , ancak gizli öğeleri hariç tutar (adı bir nokta ile başlar). Ayrıca, geçerli çalışma dizini için toplam boyuttan yoksun, çünkü bağımsız değişken olarak geçilmedi.


4
Mükemmel cevap. Mac OSX'te --depthparametre tanınmıyor. du -h -d 1Aynı sonuç için kullanın .
Dylan


2

NCurses Disk Kullanımı kabuk komutundan bahsetmeye değer .

Ncdu, ncurses arayüzüne sahip bir disk kullanım analizörüdür. Grafik bir kurulumun tamamının olmadığı uzaktaki bir sunucudaki uzay domuzlarını bulmak için tasarlanmıştır, ancak normal masaüstü sistemlerinde bile yararlı bir araçtır. Ncdu hızlı, basit ve kullanımı kolay olmayı ve ncurses kurulu olan herhangi bir POSIX benzeri ortamda çalışabilmelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.