* Nix'teki tüm alanı neyin kullandığını bulma


21

Hangi komutlar dizisi, tüm alt dizinler dahil olmak üzere belirli bir dizinden en büyük dosyaların hangileri olduğunu söyleyecektir? Tüm alanın nereye gittiğini bilmek istiyorum.

Tercihen sadece düzenli unix'y komutları ile.

Mümkünse, Sun OS 5.10 ile uyumlu tutmaya çalışın (belki mümkün olduğunca genel tutmak için normal Linux cevaplarına ek olarak, yerine değil).


SU için iki, SF için iki oy vardır. Hangisi daha uygun? Bence bu ikisinden birine ait olabilir.
mmyers

5
@mmyers: SU'ya verdi ... SU'nun Gerçek Sorulara ihtiyacı var!
Shog9

1
Ancak SU'nun zaten çok benzer bir sorusu var! superuser.com/questions/9847/…
Jonik

Yanıtlar:


11

Ben şahsen du -sh *her dizinin geçerli dizinde ne kadar büyük olduğunu görmek için kullanmak istiyorum .

Ayrıca ilk büyük klasörler için sıralayabilirsiniz: du -shx * | sort -hr. Şunun için du:

  • -s, --summarize: her bağımsız değişken için yalnızca bir toplam görüntüleme
  • -h, --human-readable: insan tarafından okunabilir biçimde baskı boyutları (örn. 1K 234M 2G)
  • -x, --one-file-system: farklı dosya sistemlerindeki dizinleri atla

Şunun için sort:

  • -h, --human-numeric-sort: okunabilir sayıları karşılaştırın (ör. 2K 1G)

Bu aslında küçük bir mod ile gerçekten yararlıdır: du -s * | sort -nr.
Alex Budovski

5
Dosya boyutlarını insan tarafından okunabilir biçimde tutabilirsiniz du -sh * | sort -hr.
Jorge Israel Peña

du -shx * | sort -hriyidir ancak yalnızca geçerli dizini döndürür. Bu sistemi nasıl yapabilirim? 100 mb altındaki her şeyi nasıl hariç tutabilirim? Teşekkürler.
tem

Bu onun kabuğundaki istilasına bağlı. Yani *bu geçerli dizinde her şeyi uygulamak yapar, ancak aynı kolaylıkla örn için bu değişebilir budur some/other/path/*, yoksa sadece bir bütün olarak tek bir dizin üzerinde çalıştırmak istiyorsanız, o zaman ihmal *glob desen. Bazı şeyleri filtrelemeye gelince, belki ayrı bir soru sorun.
Jorge Israel Peña

Sistem genelinde özyinelemeli olarak çalıştırmak için, onu findbazı dizin kökleriyle eşleştirmek ve -execçağırmak için parametresini kullanmak isteyebilirsiniz du. findProgramın kendisi muhtemelen böyle bir şeyle dosya boyutuna göre filtreleme yapabilirsiniz size +100M. Bu soruya bakın . Belki find / -size +100M -exec du -sh {} \; | sort -hrdenenmemiş bir şey gibi .
Jorge Israel Peña

13

ncdu

Sadece harika: CLI, ncurses tabanlı, hızlı, basit. İle yükleyin sudo apt install ncdu.

resim açıklamasını buraya girin


5

temelde du komutunu kullanabilirsiniz. böyle bir şey

du -a /home | sort -rn |head -1

daha fazla seçenek için lütfen man sayfasına veya info du'ya bakınız.

Veya GNU bulmayı kullanabilirsiniz.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  

Sun OS 5.10'da 'find' seçeneği -printf için kullanabileceğim bir alternatif var mı?
Alex Budovski

Ayrıca, dizinleri filtrelemek için ilk komutu (du ...) alabilirsiniz herhangi bir yolu var mı? Sadece ikinci komutunuzda olduğu gibi dosyalarla gerçekten ilgileniyorum.
Alex Budovski

5

Komut satırı değil, hala unix'y: kdirstat

Tüm alanın nereye gittiğini bulmak için kullanıyorum ve Disk Kullanım Analizcisinden (Baobab) çok daha iyi sevdim. GNOME ortamımda tolere edilen birkaç KDE uygulamasından biri ;-)

resim açıklamasını buraya girin

Kdirstat.sourceforge.net'e göre Solaris üzerinde çalışıyor.

KDirStat bir KDE programı olsa da, her X11 masaüstünde iyi çalışır, yani Linux, BSD ve diğer birçok Unix tipi sistemde (Solaris, HP-UX, AIX, ...) çalışır.


Ubuntu'da: k4dirstat ve qdirstat. Sonuncusu daha güncel. Klasörleri silmelerine izin vermelerini sevmiyorum
develCuy


3
du -a | sort -n

işi yapardı. Baobab kullanarak (gnome araçlarının bir parçası, bu yüzden muhtemelen sisteminizde zaten kurulu), kullanılan alanın oldukça güzel bir grafik dökümü elde edersiniz.


-N yerine -g kullanmak için herhangi bir neden var mı? "Bu seçeneği yalnızca alternatif yoksa kullanın; --numeric-sort (-n) 'den çok daha yavaştır ve kayan noktaya dönüştürüldüğünde bilgi kaybedebilir." Gnu.org/software/coreutils/manual/html_node/…
therefromhere

@therefromhere: Bağlantı verdiğiniz site kadar ayrıntılı olmayan bir sayfa kullandım. Bu dava için işe yarayan ilk seçeneği seçtim. Ama sen haklısın; Yazarımı düzenledim. Teşekkürler!
balpha

3

Disk Kullanım Analizörü

Debian / Ubuntu tabanlı bir dağıtım kullanıyorsanız, depolarda sinaptik kullanarak bulabileceğiniz birkaç GUI vardır.

resim açıklamasını buraya girin


3
du . -ha | sort -hr
  • -a, --all: sadece dizinler için değil, tüm dosyalar için yazma sayıları
  • -h, --human-readable: insan tarafından okunabilir biçimde baskı boyutları (örn. 1K 234M 2G)

1
Bu komutu çok eğlenceli telaffuz edebileceğinizi düşünüyorum. Kulağa komik geliyor.
jtbandes

2
-1, bu yanlış. Du komutundaki "-h" sıralamayı bozar.
therefromhere

1
Yanlış değil, sadece taşınabilir değil. -h bir GNUizmdir. Sun OS ile -k kullanın.
Ludwig Weinzierl

+ Ludwig, anladığını sanmıyorum. -H eklenerek sayıları okunabilir yapar, bu nedenle artık sıralama komutu tarafından kullanılabilecek sayılar değildir. örneğin işler şu şekilde sıralanır: "760K 784M 788K 860K 944K 985M" Olmalı du -ha | sort -hrveya du -ha | gsort -hr(temel araçları kurduktan sonra osx'ta )
Gerry

2

Geceyarısı Komutanı

Güzel GUI ve gezinme seçeneklerine sahip bir liste çıktısı istiyorsanız, Midnight Commander'ı ( mcçoğu paket yöneticisinde) yükleyin ve komut menüsünde "dizin boyutlarını göster" i işaretleyin. Ayrıca Ctrl+ space.

resim açıklamasını buraya girin

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.