it-swarm.asia

Utilitas Linux untuk menemukan file / direktori terbesar

Saya mencari program untuk menunjukkan kepada saya file/direktori mana yang paling banyak menempati ruang, seperti:

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

Saya tahu itu mungkin di KDE3, tapi saya lebih suka tidak melakukannya - KDE4 atau baris perintah lebih disukai.

133
Robert Munteanu

Untuk menemukan 10 file terbesar (linux/bash):

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

Untuk menemukan 10 direktori terbesar:

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

Satu-satunya perbedaan adalah -type {d:f}.

Menangani file dengan spasi dalam nama, dan menghasilkan ukuran file yang dapat dibaca manusia di output. File terbesar terdaftar terakhir. Argumen untuk mengekor adalah jumlah hasil yang Anda lihat (di sini 10 terbesar).

Ada dua teknik yang digunakan untuk menangani spasi dalam nama file. find -print0 | xargs -0 menggunakan pembatas nol alih-alih spasi, dan xargs -I{} kedua menggunakan baris baru sebagai ganti spasi untuk mengakhiri item input.

contoh:

$ 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

Saya selalu menggunakan ncdu. Ini interaktif dan sangat cepat.

200
Daenyth

Untuk tampilan cepat:

du | sort -n

daftar semua direktori dengan yang terbesar terakhir.

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

atau, sekali lagi, menghindari * yang berlebihan:

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

daftar semua direktori dalam direktori saat ini dengan yang terbesar terakhir.

(-n parameter untuk mengurutkan diperlukan sehingga bidang pertama diurutkan sebagai angka daripada sebagai teks tetapi ini menghalangi menggunakan parameter -h untuk du karena kita membutuhkan angka signifikan untuk pengurutan)

Parameter lain untuk du tersedia jika Anda ingin mengikuti tautan simbolik (defaultnya adalah tidak mengikuti tautan simbolik) atau hanya menunjukkan ukuran isi direktori tidak termasuk subdirektori, misalnya. du bahkan dapat memasukkan dalam daftar tanggal dan waktu ketika file dalam direktori terakhir kali diubah.

37
mas

Untuk kebanyakan hal, saya lebih suka alat CLI, tetapi untuk penggunaan drive, saya sangat suka filelight . Presentasi ini lebih intuitif bagi saya daripada alat manajemen ruang lainnya yang pernah saya lihat.

Filelight screenshot

23

Filelight lebih baik untuk pengguna KDE, tetapi untuk kelengkapan (judul pertanyaan umum) saya harus menyebutkan Baobab termasuk dalam Ubuntu, alias Disk Usage Analyzer:

enter image description here

20
Nicolas Raoul

Alat GUI, KDirStat, menampilkan data dalam bentuk tabel dan grafik. Anda dapat melihat dengan sangat cepat di mana sebagian besar ruang digunakan.

enter image description here

Saya tidak yakin apakah ini persis alat KDE yang tidak Anda inginkan, tapi saya pikir itu masih harus disebutkan dalam pertanyaan seperti ini. Itu bagus dan banyak orang mungkin tidak mengetahuinya - saya sendiri baru tahu tentang hal itu.

8
Jonik

Kombinasi selalu merupakan trik terbaik di Unix.

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

Akan menampilkan ukuran direktori dalam KB dan mengurutkan untuk memberikan yang terbesar di akhir.
Namun tampilan pohon akan membutuhkan lebih banyak fu ... apakah ini benar-benar diperlukan?

Perhatikan bahwa pemindaian ini bersarang di direktori sehingga akan menghitung sub-direktori lagi untuk direktori yang lebih tinggi dan direktori dasar . akan muncul di bagian akhir sebagai jumlah utilisasi total.

Namun Anda dapat menggunakan kontrol kedalaman pada pencarian untuk mencari pada kedalaman tertentu.
Dan, lebih banyak terlibat dengan pemindaian Anda sebenarnya ... tergantung pada apa yang Anda inginkan. Kontrol kedalaman find dengan -maxdepth dan -mindepth dapat membatasi ke kedalaman subdirektori tertentu.


Berikut adalah variasi yang disempurnakan untuk masalah arg terlalu lama Anda

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

Saya suka gt5 . Anda dapat menavigasi pohon dan membuka subdirektori untuk menelusuri lebih detail. Ini menggunakan browser web mode teks, seperti lynx, untuk menampilkan hasilnya. Instal elinks untuk hasil terbaik.

alt text

3

Meskipun tidak memberi Anda output bersarang seperti itu, cobalah du

du -h /path/to/dir/

Menjalankan itu pada folder Documents saya memuntahkan yang berikut:

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
[...]

Kemudian Anda dapat mengurutkan output dengan menyalurkannya ke sort

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

Meskipun menemukan persentase penggunaan disk setiap file/direktori bermanfaat, sebagian besar waktu mengetahui file/direktori terbesar di dalam disk sudah cukup.

Jadi favorit saya adalah ini:

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

Dan outputnya seperti ini:

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

Ini adalah skrip yang melakukannya untuk Anda secara otomatis.

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

Berikut ini adalah contoh hasil skrip:

**# 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% ***

Anda mungkin menemukan skrip ini sangat berguna dan bermanfaat!

1
Kam

Alternatif lain adalah agedu yang memecah ruang disk pada waktu akses terakhir, yang membuatnya lebih mudah untuk menemukan file buang ruang.

Ia bahkan bekerja pada server tanpa X Windows dengan menyajikan halaman web sementara sehingga penggunaannya dapat dianalisis dari jarak jauh, dengan grafik. Dengan asumsi alamat IP server adalah 192.168.1.101, Anda dapat mengetik ini di baris perintah server

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

Ini mencetak nama pengguna, kata sandi, dan URL yang dengannya Anda dapat mengakses "GUI" dan menelusuri hasilnya. Setelah selesai, akhiri agedu dengan Ctrl+D di server.

1
Bastiaan

Untuk menemukan 25 file teratas di direktori saat ini dan subdirektori:

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

Akan menampilkan 25 file teratas dengan mengurutkan berdasarkan ukuran file melalui perintah pipa "sort -nr -k5".

1
xpros
du -chs /*

Akan menampilkan daftar direktori root.

0
RusAlex

Coba satu-liner berikut (menampilkan top-20 file terbesar di direktori saat ini):

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

atau dengan ukuran yang dapat dibaca manusia:

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

Perintah kedua untuk bekerja di OSX/BSD dengan benar (karena sort tidak memiliki -h), Anda perlu menginstal sort dari coreutils.

Jadi alias ini berguna untuk ada di file rc Anda (setiap kali Anda membutuhkannya):

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

Untuk melengkapi daftar sedikit lagi, saya menambahkan analisa penggunaan disk favorit saya, yaitu xdiskusage .

GUI mengingat saya tentang beberapa utilitas X lain yang bagus, cepat dan tidak membengkak, tetapi Anda dapat menavigasi dengan mudah dalam hierarki dan memiliki beberapa opsi tampilan:

$ xdiskusage /usr

enter image description here

0
mpy