Apakah ada perintah sederhana untuk menampilkan ukuran total agregat (penggunaan disk) dari semua file dalam direktori (folder)?
Saya sudah mencoba ini, dan mereka tidak melakukan apa yang saya inginkan:
ls -l
, yang hanya menampilkan ukuran file individual dalam direktori, ataudf -h
, yang hanya menampilkan ruang kosong dan bekas pada disk saya.
filesystem
command-line
David Barry
sumber
sumber
Jawaban:
Perintah
du
"meringkas penggunaan disk masing-masing FILE, secara rekursif untuk direktori," misalnya,-h
adalah untuk mendapatkan angka "dapat dibaca manusia", mis. dapatkan140M
alih-alih143260
(ukuran dalam KBytes)-s
adalah untuk ringkasan (jika tidak, Anda akan mendapatkan tidak hanya ukuran folder tetapi juga untuk semua yang ada di folder secara terpisah)Saat Anda menggunakan,
-h
Anda dapat mengurutkan nilai yang dapat dibaca manusia menggunakanTanda
-h
padasort
akan mempertimbangkan nilai ukuran "Dapat Dibaca Manusia".Jika ingin menghindari daftar semua file dan direktori secara
--max-depth
berulang , Anda dapat menyediakan parameter untuk membatasi berapa banyak item yang ditampilkan. Kebanyakan pada umumnya,--max-depth=1
sumber
du -sh
atau DOOSH sebagai cara untuk mengingatnya (CATATAN: perintahnya sama, hanya organisasi bendera commandline untuk keperluan memori)du -hs *
dan pergi ke direktori terbesar dan menemukan file mana yang sangat besar ... Ini adalah metode yang bagus, dan yang terbaik adalah Anda tidak perlu menginstal apa pun! Pasti layak mendapat dukungan sayadu
memiliki pembulatan agak aneh, tidak menunjukkan desimal jika nilainya memiliki lebih dari satu digit pada unit yang dipilih), dan masalah awalan klasik 1024 vs 1000 .du
memiliki opsi-B
(atau--block-size
) untuk mengubah unit tempat nilai ditampilkan, atau Anda bisa menggunakan-b
alih-alih-h
mendapatkan nilai "mentah" dalam byte.Baru-baru ini saya menemukan alat interaktif hebat berbasis ncurses, yang dengan cepat memberi Anda gambaran tentang ukuran direktori. Mencari alat semacam itu selama bertahun-tahun.
Anggap saja sebagai baobab untuk baris perintah:
sumber
ncdu
Mengagumkan! Setelah menginstalnya, lakukan saja inincdu /
. Anda akan dengan cepat menemukan file terbesar di sistem. Juga tekanh
saat berada di dalam antarmuka konsol ncdu. Ini memiliki pintasan yang sangat bergunaIni menemukan ukuran secara rekursif dan meletakkannya di sebelah setiap nama folder, bersama dengan ukuran total di bagian bawah, semua dalam format manusia
sumber
Nikmati!
Informasi lebih lanjut tentang perintah itu di sini
sumber
tree
adalah perintah lain yang berguna untuk pekerjaan ini:Cukup instal melalui
sudo apt-get install tree
dan ketik yang berikut ini:Dari pohon manusia :
sumber
Di bawah ini adalah apa yang saya gunakan untuk mencetak total, folder, dan ukuran file:
Detail
Keluaran
sumber
Jawabannya telah membuatnya jelas yaitu
du
alat untuk menemukan ukuran total direktori. Namun, ada beberapa faktor yang perlu dipertimbangkan:Kadang-kadang,
du
output bisa menyesatkan karena melaporkan ruang yang dialokasikan oleh sistem file, yang mungkin berbeda dari jumlah ukuran file individu. Biasanya filesystem akan mengalokasikan 4096 byte untuk file bahkan jika Anda hanya menyimpan satu karakter di dalamnya!Perbedaan output karena daya 2 dan daya 10 unit. The
-h
beralih kedu
membagi jumlah byte dengan 2 ^ 10 (1024), 2 ^ 20 (1.048.576) dll untuk memberikan output yang dapat dibaca manusia. Banyak orang mungkin lebih terbiasa melihat kekuatan 10 (misalnya 1K = 1000, 1M = 1000000) dan terkejut dengan hasilnya.Untuk menemukan jumlah total ukuran semua file dalam direktori, dalam byte, lakukan:
Contoh:
sumber
--bignum
atau-M
; jika itu bukan pilihan, gunakanfind . -ls | tr -s ' '|cut -d' ' -f 7| paste -sd+ |bc
# 2 .--si
pilihan: "seperti -h, tapi gunakan kekuatan 1000 bukan 1024"Hanya untuk ukuran direktori dalam format yang dapat dibaca, gunakan di bawah ini:
Ini mungkin bukan di bagian yang benar, tetapi dari baris perintah, Anda dapat mencoba:
The
-s
adalah ukuran, dan-h
ini dapat dibaca manusia.Gunakan
-l
untuk menampilkanls
daftar, seperti di bawah ini:sumber
du /foldername
adalah perintah standar untuk mengetahui ukuran folder. Ini adalah praktik terbaik untuk menemukan opsi dengan membaca halaman manual:Anda harus membaca halaman manual (tersedia online ) sebelum Anda menggunakan perintah.
sumber
Berikut ini skrip POSIX yang akan bekerja dengan:
Sumber
sumber
Jika direktori yang Anda inginkan memiliki banyak sub-direktori, gunakan yang berikut ini:
yang kemudian akan menghasilkan total keseluruhan penggunaan memori oleh semua file / folder di direktori saat ini.
sumber
Yang terbaik menurut saya adalah sebagai berikut:
Ini hanya akan menunjukkan ukuran direktori yang Anda minati dan tidak akan mencetak ukuran direktori dan file apa pun di dalam direktori itu.
Saya harus menambahkan bahwa jika ukuran folder besar maka du membutuhkan waktu lebih lama. Anda harus bersabar agar perintah ini berfungsi. Sama seperti perintah unix lainnya, Anda dapat mengetahui total waktu untuk proses ini dengan menggunakan
time
sebelum perintah ini:sumber
du
memiliki opsi untuk ini:-s