it-swarm-tr.com

Bir dizinin (klasör) toplam boyutunu komut satırından nasıl belirlerim?

Bir dizindeki (klasör) tüm dosyaların toplam boyutunu (disk kullanımı) görüntülemek için basit bir komut var mı?

Bunları denedim ve istediğimi yapmıyorlar:

  • ls -l, yalnızca bir dizindeki tek tek dosyaların boyutunu gösterir
  • df -h, disklerimde sadece boş ve kullanılmış alanı gösterir.
774
David Barry

du "komutu, her bir DOSYA'nın disk kullanımını, dizinler için tekrarlı bir şekilde özetler", ör.

du -hs /path/to/directory
  • -h "insan tarafından okunabilir" sayılarını, örn. 140M yerine 143260 alın (KByte cinsinden)
  • -s özeti içindir (aksi takdirde sadece klasörün boyutunu değil, aynı zamanda her şey için elde edersiniz in ayrı klasör)

-h kullanıyorsanız, kullanıcı tarafından okunabilir değerleri kullanarak sıralayabilirsiniz

du -h | sort -h

sort üzerindeki -h bayrağı "İnsan tarafından okunabilir" boyut değerlerini dikkate alacaktır.


Tüm dosyaları ve dizinleri tekrar tekrar listelemekten kaçınmak istiyorsanız, kaç öğenin görüntüleneceğini sınırlamak için --max-depth parametresini sağlayabilirsiniz. En sık, --max-depth=1

du -h --max-depth=1 /path/to/directory
1243
Marcel Stimberg

Son zamanlarda, hızlı bir şekilde size dizin boyutları hakkında genel bilgi veren harika bir ncurses tabanlı etkileşimli araç buldum. Yıllarca böyle bir alet aradım.

  • hızlı bir şekilde dosya hiyerarşisi içinde azalt
  • örneğin silebilirsiniz. Aracın içinden büyük geçici dosyalar
  • son derece hızlı

Komut satırı için baobab olarak düşünün:

apt-get install ncdu
164
geekQ

Bu, boyutu tekrarlı olarak bulur ve her klasör adının yanına, altta toplam boyut ve tüm insan formatına yerleştirir.

du -hsc *
51
Brad

Keyfini çıkarın!

du foldername

Bu komutla ilgili daha fazla bilgi burada

16
myusuf3

tree bu iş için başka bir yararlı komuttur:

Sadece Sudo apt-get install tree ile kurun ve aşağıdakini yazın:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

Adam ağacından :

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
10
αғsнιη

Aşağıda toplam, klasör ve dosya boyutunu yazdırmak için kullanıyorum:

$ du -sch /home/vivek/* | sort -rh

Ayrıntılar

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

Çıktı

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
9
vivekyad4v

Cevaplar, du öğesinin, bir dizinin toplam boyutunu bulma aracı olduğunu açıkça ortaya koydu. Bununla birlikte, dikkate alınması gereken birkaç faktör vardır:

  • Bazen, du çıkışı, her bir dosyanın boyutunun toplamından farklı olabilecek, dosya sistemi tarafından ayrılan alanı bildirdiği için yanıltıcı olabilir. Tipik olarak dosya sistemi bir dosya için 4096 bayt ayırır, içinde sadece bir karakter saklasanız bile!

  • 2 ve 10 birimin gücüne bağlı olarak çıkış farkları. -h, du konumuna geçer, insan tarafından okunabilir bir çıktı vermek için bayt sayısını 2 ^ 10 (1024), 2 ^ 20 (1048576) vb. İle böler. Birçok insan 10'luk güçleri görmeye daha alışmış olabilir (örneğin 1K = 1000, İM = 1000000) ve sonuçtan şaşırmış olabilir.

Bir dizindeki tüm dosyaların toplam boyutlarını bayt cinsinden bulmak için şunu yapın:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Örnek:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
4
pdp

Yalnızca okunabilir bir biçimde olan dizin boyutu için aşağıdakileri kullanın:

du -hs directoryname

Bu muhtemelen doğru bölümde değil, ancak komut satırından deneyebilirsiniz:

ls -sh filename

-s boyut ve -h insan tarafından okunabilir.

ls listesinde, aşağıdaki gibi göstermek için -l kullanın:

ls -shl
1
Shiv Singh

du /foldername, bir klasörün boyutunu bilmek için standart komuttur. Man sayfasını okuyarak seçenekleri bulmak en iyi yöntemdir:

man du

Komutu kullanmadan önce man sayfasını okumalısınız (available online ).

0

İşte çalışacak bir POSIX betiği:

  • Bir dosya
  • Dosyalar
  • Bir dizin
  • Dizinler
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

Kaynak

0
Steven Penny

İstediğiniz dizinde çok sayıda alt dizin varsa, aşağıdakileri kullanın:

$ cd ~/your/target/directory
$ du -csh 

-c, --total genel toplam üretmek
- s, --summarize, her bir argüman için yalnızca toplamı gösterir
- h, - insan tarafından okunabilir biçimde insan tarafından okunabilen baskı boyutları (örneğin, 1K 234M 2G)

bu, geçerli dizindeki tüm dosyalar/klasörler tarafından kullanılan bellek kullanımının toplamını oluşturur.

0
kmario23