it-swarm-tr.com

En büyük dosyaları/dizinleri bulmak için Linux yardımcı programı

Hangi dosyaların/klasörlerin en çok yer kapladığını gösterecek bir program arıyorum.

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

KDE3'te mümkün olduğunu biliyorum, ama bunu yapmamayı tercih ederim - KDE4 veya komut satırı tercih edilir.

131
Robert Munteanu

En büyük 10 dosyayı bulmak için (linux/bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

En büyük 10 dizini bulmak için:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Tek fark -type {d:f}.

Adlarında boşluk bulunan dosyaları işler ve çıktıda okunabilir insan boyutları üretir. En son listelenen en büyük dosya. Tail argümanı, gördüğünüz sonuçların sayısıdır (burada en büyük 10).

Dosya adlarındaki boşlukları işlemek için kullanılan iki teknik vardır. find -print0 | xargs -0, boşluklar yerine boş sınırlayıcılar kullanır ve ikinci xargs -I{}, girdi öğelerini sonlandırmak için boşluklar yerine newlines kullanır.

örnek:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
130
Sean

Ben daima ncdu kullanırım. Etkileşimli ve çok hızlı.

199
Daenyth

Hızlı görünüm için:

du | sort -n

en sonuncusu olan tüm dizinleri listeler.

du --max-depth=1 * | sort -n

veya, fazlalıktan kaçınarak *:

du --max-depth=1 | sort -n

geçerli dizindeki tüm dizinleri en büyük diziyle listeler.

(-n sıralamak için -n parametresi gereklidir, böylece ilk alan metin yerine bir sayı olarak sıralanır, ancak sıralama için önemli bir sayıya ihtiyacımız olduğu için -h parametresini du-du parametresini kullanmaktan alıkoyur)

Sembolik linkleri takip etmek (varsayılan olarak sembolik linkleri takip etmemek) veya sadece alt dizinler hariç dizin içeriğinin boyutunu göstermek istiyorsanız, du için diğer parametreler kullanılabilir. du bile dizinde herhangi bir dosyanın en son değiştirildiği tarih ve saati listeye dahil edebilir.

37
mas

Çoğu şey için CLI araçlarını tercih ederim, ancak sürücü kullanımı için filelight komutunu gerçekten seviyorum. Sunum benim için gördüğüm diğer alan yönetim araçlarından daha sezgisel.

Filelight screenshot

23

Filelight, KDE kullanıcıları için daha iyidir, fakat bütünlük için (soru başlığı genel) Bahsetmeliyim Baobab Ubuntu'da, yani Disk Kullanım Analizcisi'nde:

enter image description here

20
Nicolas Raoul

Bir GUI aracı,KDirStat, verileri hem tablo biçiminde hem de grafik olarak gösterir. Alanın çoğunun nerede kullanıldığını çok hızlı bir şekilde görebilirsiniz.

 enter image description here

Bunun tam olarak istemediğiniz KDE aracı olup olmadığından emin değilim, ama bunun gibi bir soruda yine de belirtilmesi gerektiğini düşünüyorum. Bu iyi bir şey ve pek çok insan muhtemelen bunu bilmiyor - sadece son zamanlarda kendim öğrendim.

8
Jonik

Bir kombinasyon her zaman Unix'teki en iyi numaradır.

du -sk $(find . -type d) | sort -n -k 1

Dizin boyutlarını KB olarak gösterecek ve sonuçta en büyük verimi verecek şekilde sıralayacaktır.
Ancak ağaç görünümü biraz daha fazla fu gerektirecek ... gerçekten gerekli mi?

Bu taramanın dizinler arasında yuvalanmış olduğunu, bu nedenle daha yüksek dizinler için alt dizinleri tekrar satacağını ve taban dizini . dosyasının toplam kullanım toplamı olarak görüneceğini unutmayın.

Bununla birlikte, belirli bir derinlikte arama yapmak için bulma üzerinde bir derinlik kontrolü kullanabilirsiniz.
Ve, aslında ne istediğine bağlı olarak ... taramayla daha fazla ilgilen. find'ın -maxdepth ve -mindepth ile derinlik kontrolü, belirli bir alt dizin derinliğini sınırlayabilir.


Çok uzun süren probleminiz için rafine bir varyasyon

find . -type d -exec du -sk {} \; |  sort -n -k 1
5
nik

gt5 'yi severim. Daha fazla ayrıntı için ayrıntıya inmek için ağaçta gezinebilir ve alt dizinleri açabilirsiniz. Sonuçları görüntülemek için lynx gibi bir metin modu web tarayıcısı kullanır. En iyi sonuçları elde etmek için bağlantılarını kullanın.

alt text

3

Bu şekilde yuvalanmış bir çıktı vermese de, du komutunu deneyin.

du -h /path/to/dir/

Bunu Belgelerim klasöründe çalıştırmak aşağıdakileri dağıtıyor:

josh-hunts-macbook:Documents joshhunt$ du -h
  0B    ./Adobe Scripts
  0B    ./Colloquy Transcripts
 23M    ./Electronic Arts/The Sims 3/Custom Music
  0B    ./Electronic Arts/The Sims 3/InstalledWorlds
364K    ./Electronic Arts/The Sims 3/Library
 77M    ./Electronic Arts/The Sims 3/Recorded Videos
101M    ./Electronic Arts/The Sims 3/Saves
 40M    ./Electronic Arts/The Sims 3/Screenshots
1.6M    ./Electronic Arts/The Sims 3/Thumbnails
387M    ./Electronic Arts/The Sims 3
387M    ./Electronic Arts
984K    ./English Advanced/Documents
1.8M    ./English Advanced
  0B    ./English Extension/Documents
212K    ./English Extension
100K    ./English Tutoring
5.6M    ./IPT/Multimedia Assessment Task
720K    ./IPT/Transaction Processing Systems
8.6M    ./IPT
1.5M    ./Job
432K    ./Legal Studies/Crime
8.0K    ./Legal Studies/Documents
144K    ./Legal Studies/Family/PDFs
692K    ./Legal Studies/Family
1.1M    ./Legal Studies
380K    ./Maths/Assessment Task 1
388K    ./Maths
[...]

Ardından çıktıyı sort seçeneğine bağlayarak sıralayabilirsiniz.

du /path/to/dir | sort -n
2
Josh Hunt

Her dosyanın/dizinin yüzde disk kullanımını bulmak faydalı olsa da, çoğu zaman diskteki en büyük dosyaları/dizinleri bilmek yeterlidir.

Yani benim favorim şudur:

# du -a | sort -n -r | head -n 20

Ve çıktı şöyle:

28626644        .
28052128        ./www
28044812        ./www/vhosts
28017860        ./www/vhosts/example.com
23317776        ./www/vhosts/example.com/httpdocs
23295012        ./www/vhosts/example.com/httpdocs/myfolder
23271868        ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576        ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700        ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748        ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852         ./www/vhosts/example.com/stats
4479728         ./www/vhosts/example.com/stats/logs
4437900         ./www/vhosts/example.com/stats/logs/access_log.processed
401848          ./lib
323432          ./lib/mysql
246828          ./lib/mysql/mydatabase
215680          ./www/vhosts/example.com/stats/webstat
182364          ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304          ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144          ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
1
trante

İşte sizin için otomatik olarak yapan script.

http://www.thegeekscope.com/linux-script-to-find-largest-files/

Aşağıdaki betiğin örnek çıktısı:

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)]     [% OF DISK] [OWNER]         [LAST MODIFIED ON]        [FILE] 

56421808           0%           root           2012-08-02 14:58:51       /usr/lib/locale/locale-archive
32464076           0%           root           2008-09-18 18:06:28       /usr/lib/libgcj.so.7rh.0.0
29147136           0%           root           2012-08-02 15:17:40       /var/lib/rpm/Packages
20278904           0%           root           2008-12-09 13:57:01       /usr/lib/xulrunner-1.9/libxul.so
16001944           0%           root           2012-08-02 15:02:36       /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes  [ 0% of Total Disc Space  ]

*** Note: 0% represents less than 1% ***

Bu betiği çok kullanışlı ve kullanışlı bulabilirsiniz!

1
Kam

Başka bir alternatif ise agedu ki bu son erişim zamanına göre disk alanını keser ve bu da alan israf dosyalarının bulunmasını kolaylaştırır.

Geçici web sayfalarını sunarak X Windows'suz bir sunucuda bile çalışır, böylece kullanım grafiklerle uzaktan analiz edilebilir. Sunucunun IP adresinin 192.168.1.101 olduğunu varsayarsak, bunu sunucunun komut satırına yazabilirsiniz.

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

Bu, "GUI" ye erişebileceğiniz ve sonuçlara göz atabileceğiniz kullanıcı adını, şifreyi ve URL'yi yazdırır. İşlem tamamlandığında, sunucudaki Ctrl+D ile agedu işlevini sonlandırın.

1
Bastiaan

Geçerli dizindeki ve alt dizinlerindeki ilk 25 dosyayı bulmak için:

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

Bu, "sort -nr -k5" piped komutuyla dosyaların boyutuna göre sıralama yaparak ilk 25 dosyayı çıkarır.

1
xpros
du -chs /*

Kök dizinin bir listesini gösterecektir.

0
RusAlex

Aşağıdaki tek astarı deneyin (geçerli dizindeki en büyük 20 dosyayı görüntüler):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

veya okunabilir boyutlarda:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Düzgün OSX/BSD üzerinde çalışacak ikinci komut (sort-h 'a sahip olmadığı için), sort adresinden coreutils öğesini yüklemeniz gerekir.

Bu yüzden bu takma adlar, rc dosyalarında (her ihtiyacınız olduğunda) olması için yararlıdır:

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
0
kenorb

Listeyi biraz daha tamamlamak için, en sevdiğim disk kullanım analizcisini ekliyorum: xdiskusage .

GUI bana diğer iyi ol 'X yardımcı programlarını hatırlıyor, hızlı ve şişirilmiş değil, ancak yine de hiyerarşide kolayca gezinebilir ve bazı ekran seçeneklerine sahip olabilirsiniz:

$ xdiskusage /usr

enter image description here

0
mpy