it-swarm-id.com

Bagaimana saya bisa menghitung ukuran direktori?

Bagaimana cara mengetahui ukuran suatu direktori? Termasuk subdirektori dan file.

189
Juanjo Conti
du -s directory_name

Atau untuk mendapatkan hasil yang bisa dibaca manusia:

du -sh directory_name

-s Opsi berarti tidak akan mencantumkan ukuran untuk setiap subdirektori, hanya ukuran total.

245
sepp2k

GNU du mengambil -b pilihan.

Lihat halaman man dan info) untuk bantuan lebih lanjut:

-b, --bytes setara dengan --apparent-size --block-size=1

7
user2573436

Meskipun menggunakan paket terpisah seperti ncdu dapat bekerja dengan baik, perbandingan yang sama dari banyak folder dapat dilakukan, sampai taraf tertentu, dengan hanya memberikan du daftar folder untuk ukuran. Misalnya untuk membandingkan direktori tingkat atas pada sistem Anda ...

cd /    
Sudo du -sh ./*
7
NFlourish
du -csh

-c menghasilkan total besar

1
Kalpesh Soni

Mencoba

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Ini membantu menemukan direktori besar untuk kemudian disaring menggunakan du -sh ./*

1
rollinjack

Anda dapat menggunakan "file-size.sh" dari awk Velour library :

ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
1
Steven Penny

Saya selalu menginstal paket "ncdu" dan melihat semua output dari semua direktori dengan representasi grafis. Ini karena saya biasanya perlu tahu apa yang menghabiskan paling banyak ruang disk pada mesin saya, terlepas dari berapa banyak direktori tunggal merangkum.

Penggunaan: Sudo ncdu / (Anda tidak perlu Sudo untuk folder yang izinnya Anda baca).

Diperlukan waktu beberapa saat untuk memindai statistik penggunaan disk di seluruh sistem file. Ini memiliki representasi grafis baris perintah Nice dan termasuk navigasi keyboard menggunakan tombol panah, seperti masuk lebih dalam atau lebih tinggi di jalur yang dipindai. Anda juga dapat menghapus item dengan menekan D.

0
Etescartz

du -hd1

akan mendaftar dalam format yang dapat dibaca manusia ukuran semua direktori, mis.

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config
0
Boris Yakubchik

Saya mencoba dengan perintah di bawah ini karena sudah jawaban terbaik telah disediakan

Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

keluaran

 Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
0
Praveen Kumar BS

Pertanyaan asli menanyakan ukuran, tetapi tidak menentukan apakah itu ukuran pada disk atau ukuran sebenarnya dari data.

Saya telah menemukan bahwa perhitungan 'du' dapat bervariasi antara server dengan partisi ukuran yang sama menggunakan sistem file yang sama. Jika karakteristik sistem file berbeda, ini masuk akal, tetapi jika tidak, saya tidak dapat menemukan alasannya. Jawaban 'ls | awk "yang diberikan Steven Penny menghasilkan jawaban yang lebih konsisten, tetapi tetap memberi saya hasil yang tidak konsisten dengan daftar file yang sangat besar.

Menggunakan 'find' memberikan hasil yang konsisten untuk 300.000+ file, bahkan ketika membandingkan satu server menggunakan XFS dan lainnya menggunakan EXT4. Jadi jika Anda ingin mengetahui total byte data di semua file maka saya sarankan ini adalah cara yang baik untuk mendapatkannya:

find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
0
Angelo Babudro

anda juga dapat menggunakan ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l adalah untuk daftar panjang; -d adalah untuk menampilkan informasi dir, bukan isi dari dir, -h adalah untuk menampilkan ukuran dalam format yang dapat dibaca.

0
fromnaboo