Bir dizindeki özyinelemeli dosya ve dosya boyutlarını nasıl listeleyebilirim?


50

Bir dizindeki tüm dosyaları ve özyinelemeli dosya boyutlarını nasıl listeleyebilirim?

---Düzenle

Listelenen dizindeki ana dizinlere 'toplanmış' boyutları görmek istiyorum. Alt dizinleri veya içeriğini veya boyutlarını görmek istemiyorum.


1
Bir klasördeki tüm dosyaların toplam boyutunu (masaüstünde bir klasöre sağ tıklayıp 'özellikleri' seçmek gibi) görmek istediğinizi mi söylüyorsunuz?
Pavlos G.

Büyük dosyaları bulmanıza ya da (daraltılabilir) bir dosya ağacını alabileceğiniz bir şey bulmanıza yardımcı olan bir yazılım mı arıyorsunuz?
Lekensteyn

Hi @Pavlos G - Ben şu anda bulunduğum dizindeki her bir dizin için toplamı kastediyorum - genel dizinin toplamı değil.
Hawkeye

@JG - Güncellememi kontrol et ;-)
Pavlos G.

Yanıtlar:


53

Sanırım en kolay yol yazarak ls -lveya ls -lhdosya boyutunu insan tarafından okunabilir biçimde (KB, MB, vb.) Sağlayacak.

Eğer 'özyinelemeli' takip eden tüm klasörlerin listelenmesi anlamına geliyorsa, örneğin:

/ foo /
/ foo / bar / ....

Öyleyse R, ls -lRveyals -lhR

Daha fazla bilgi lsyazarak bulunabilir.man ls

Güncelleme:

Lekensteyn'in önerdiği şekilde şu komut muhtemelen işi yapacak:

du -h --max-depth=1 <folder>

-hİnsan tarafından okunabilir
--apparent-sizeolması, boyutları belirtilmiş olan başka bir yoldur, önceden belirtildiği gibi
--max-depth, aşağı inmek istediğiniz alt klasörlerin seviyesidir.


Maksimum derinlik için ne kullanılmalı? -1?
dylanh724

61
apt-get install ncdu

görüntü tanımını buraya girin

Aynı zamanda etkileşimlidir, bu nedenle sadece YUKARI, AŞAĞI ve ona bir alt klasörde kontrol etmek istiyorsanız.


Tam da aradığım şey. Çok teşekkür ederim!
Mathlight

Belki en şaşırtıcı yazılım önerisi aldım hiç var
SomethingSomething

bu onaylanmış cevap olmalı
dvdmn

30

Bir dizinin ve tüm çocukların toplam boyutlarını almak için

du -hs directory/*

Bundan bir sonraki seviyeye geçmek istiyorum - tüm birinci seviye çocukların özyinelemeli boyutları.
Hawkeye

1
Cevabımı düzenleyeceğim. Du -h dizinini kullanmanız gerekir / *
Richard Holloway

17

Ayrıca kontrol edin tree. Varsayılan olarak kurulmaz fakat depolardır.

Örnek:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Man sayfasında daha fazla seçenek bulunabilir.


Boyutlar gösterilmeli mi?
Hawkeye

JG: -s boyutları gösterir.
Richard Holloway

1
Tam dizin boyutu yerine dizin kaydının boyutunu gösterir.
Steven Lu,

-hinsan okunabilir bir şekilde boyutunu göstermek, örneğintree -s
Eric Wang

15

Terminal tabanlı bir çözüme ihtiyaç duyduğunuzdan özellikle bahsetmediğiniz için, bence baobab aka Disk Kullanım Analizörü listede eksik.

Varsayılan olarak Ubuntu'da kuruludur ve dizinin hiyerarşisini delme özelliği olan güzel bir grafik kullanıcı arabiriminde tam olarak istediğinizi yapar.

Boyutlarıyla birlikte bir dizin listesi görüntülemenin yanı sıra, en çok yer kaplayan dizinlerin görselleştirilmesinde son derece yararlı olan bir halka veya dosya sistemi kullanım haritası grafiği de gösteriyor.

baobab Disk Kullanımı Analizörü


7

Bir uç bir çözüm olan dukomutu:

du --all --human-readable --apparent-size

(kısa: du -ah --apparent-size)

duHer dosya ve dizin için disk kullanımını görüntüler. Seçenekler açıklandı:

  • --all, -a- sadece dizinleri değil, dosyalar için boyutları göster
  • --human-readable, -h- boyutları okunabilir bir formatta gösterir, örneğin 10K(10 kilobayt), 10(10 bayt)
  • --apparent-size - disk tarafından kullanılan boyutları değil, gerçek dosya boyutunu gösterin.

Ben sadece birinci sınıf çocukları istedim
Şahin Gözü

2
Kullanabileceğiniz 1. seviye için @hawkeye--max-depth=1
nikoskip

4
@ nikoskip güzel ipucu! Ayrıca bilmek güzel steno, --max-depth=1kısaltılabilir -d1.
Lekensteyn

Bunların hepsini azalan bir düzende nasıl elde edersiniz ..
kRazzy R

içeriğini nasıl görebilirim ve boş: / dev / sda5 ext4 430G 381G 27G 94% / dizüstü bilgisayarım 1 aydan daha az ve o kadar dolu ki hiçbir anlam ifade etmiyor
kRazzy R

2

Simlink'ler söz konusu olduğunda hile yapmak gibi görünüyor.

ls -LRlh

verilen cevap bana simlink'ler için detay vermedi (ls -lhR), yanında listelenen sayılar da her bir değerin doğru boyutuna uymuyordu. Cevabım bana tanımlanmış bir ağaç yapısına ve doğru cevaba sahip bir hiyerarşi verdi .... VEYA başka bir iyileştirilmiş cevabı mı kastediyorsunuz?
Mulki

Aşağı oy geri çekildi, oy verildi. Lütfen yorumu düzenleyin ve cevabınıza yazın. Açıklama için teşekkürler. ;-)
Fabby

1

Sıralanmış bir liste almak için her şeyi MB'ye ve sıralamaya koyun:

du -m * | sort -n

Veya tam disk ağacının bir raporunu oluşturmak için DiskReport gibi bir araç kullanın .


1

Başka bir terminal çözümü findve sıralama (dosya boyutuna göre, sütun 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Bu dizinin boyutunu göstermiyor.
muru
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.