Apakah ada cara untuk dengan cepat mendapatkan ukuran yang akurat untuk direktori (termasuk, secara rekursif, semua sub-direktori)? Saya tidak ingin ukuran subdirs, yang saya maksud adalah ukurannya harus dimasukkan secara rekursif dalam ukuran total yang dilaporkan.
Gagal itu, cara untuk mendapatkan ukuran perkiraan? Saya sedang memikirkan sesuatu df
yang menghasilkan respons cepat untuk seluruh sistem file, tetapi kali ini untuk direktori tertentu (dan itu adalah subdirektori).
Solusi menggunakan du
tampaknya perlu waktu lama ketika diberi direktori berisi ribuan sub-dir.
du
adalah satu-satunya metode yang saya ketahui. Masalahnya adalah bahwa data tersebar di seluruh hierarki sehingga perlu dihitung dengan alat untuk mendapatkan penghitungan.Jawaban:
Saya menemukan ini sangat berguna.
atau untuk mendapatkan rincian direktori di dalam
dan kemudian dengan semacam jika punya banyak subdir
Alasan saya menggunakan opsi -m adalah untuk memastikan saya mendapatkan output megabyte. Saya menemukan ini lebih mudah bagi saya untuk membandingkan secara visual (ketika saya tidak mendapatkan campuran unit misalnya membandingkan 999 KB dan 1MB vs 999000MB dan 1000000MB), manfaat tambahan adalah bahwa Anda dapat melewatkan output menjadi semacam.
Letakkan semuanya di latar belakang dan redirect output, itu akan membutuhkan waktu apa pun metode yang digunakan, itu adalah melintasi dari banyak file yang akan memakan waktu.
Catatan keluar semacam terbalik jadi yang besar adalah di awal. Tambahkan ini ke cron run setiap n mnt.
Kemudian dengan alias ducache, Anda memiliki penggunaan direktori yang cukup mutakhir.
sumber
shopt -s dotglob
, jikadu -sm Directory/*
tidak , tidak akan menghitung file / direktori tersembunyi.akan memberi Anda ringkasan ukuran total dalam output berformat "manusia".
Karena Anda mencari alternatif untuk
du
, saya mencobafind
, tetapi persis sama:sumber
du
butuh waktu terlalu lama karena ini menghasilkan hasil yang akurat. Saya berharap untuk alat / perintah yang menyediakan jawaban perkiraan cepat dan kotor.df
tapi itu berfungsi pada keseluruhan sistem file.Anda mungkin tidak menyukai jawaban saya, tetapi saya pikir cara terbaik untuk melakukan apa yang Anda inginkan adalah menjalankan "du -s" di latar belakang secara teratur menggunakan cron dan menyimpan hasilnya dalam file. Kemudian ketika Anda menginginkan nilai perkiraan, gunakan nilai dari file. Anda harus memutuskan seberapa sering menjalankan du. Saya tidak melihat cara yang lebih cepat untuk mendapatkan nilai. Perintah du efisien untuk apa yang dilakukannya.
Satu-satunya cara Anda bisa melakukan ini dengan sangat cepat adalah membuat sistem file untuk direktori, lalu Anda akan mendapatkan jawaban yang Anda inginkan dengan sangat cepat.
Jika lebih cepat mengetahui segalanya dalam sistem file kecuali direktori Anda, Anda dapat menjalankan df untuk sistem file, du untuk segala sesuatu selain direktori Anda dan kurangi.
sumber
Itu tidak persis sesuai dengan kebutuhan Anda (bukan cetak satu-baris) tetapi caranya lebih mudah daripada solusi lain:
Perintah ini akan memberi Anda ukuran direktori dan sub-direktori dan ukuran file atau sub-direktori terbesar pada direktori saat ini.
PS: Ini
head -2
dalam kasus sub-direktori mengambil semua tempat direktori saat ini dan mendengarkan sebelum saat ini.sumber