Saya mencoba menulis skrip yang akan menghitung ukuran direktori dan jika ukurannya kurang dari 10GB, dan lebih besar dari 2GB melakukan beberapa tindakan. Di mana saya perlu menyebutkan nama folder saya?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
du
itu dan bagaimana semua orang tahu semua perintah ini: Anda dapat mengetikkanman du
terminal Anda untuk mencari perintah du dalam manual. Ini akan menampilkan output yang dapat Anda lihat, dan akan merangkum semua flag seperti -h, -c, -s, -b, -B, --apparent-size, dll. Bahwa jawaban yang Anda sarankan Anda gunakan. Kemudian, Anda dapat memutuskan sendiri bagaimana Anda ingin menggunakandu
untuk kasus penggunaan spesifik Anda.Jawaban:
Anda dapat melakukan:
yang akan memberi Anda ukuran direktori target Anda.
Jika Anda ingin keluaran singkat,
du -hcs your_directory
itu bagus.sumber
du -hs
==du -hs .
.du | sort -n
itu akan mengurutkan direktori berdasarkan ukurannyadu -hcs dir_name/*
termasuk subfolderjika Anda hanya ingin melihat ukuran folder dan bukan sub-folder, Anda dapat menggunakan:
Memperbarui:
Anda harus tahu yang
du
menunjukkan ruang disk yang digunakan; dan bukan ukuran file.Anda dapat menggunakan
--apparent-size
jika Anda ingin melihat jumlah ukuran file aktual.Dan tentu saja tidak perlu untuk
-h
opsi (dapat dibaca manusia) di dalam skrip.Sebagai gantinya Anda dapat menggunakan
-b
untuk perbandingan yang lebih mudah di dalam skrip.Tetapi Anda harus Catatan yang
-b
berlaku--apparent-size
dengan sendirinya. Dan itu mungkin bukan yang Anda butuhkan.jadi saya pikir, Anda harus menggunakan
--block-size
atau-B
sumber
Gunakan ringkasan (
-s
) dan byte (-b
). Anda dapat memotong bidang pertama ringkasan dengancut
. Menyatukan semuanya:sumber
Untuk hanya mendapatkan ukuran direktori, tidak lebih:
Outputnya seperti
sumber
--max-depth
sangat berguna untuk mengontrol keluaran! misalnya, untuk mendapatkan gagasan yang baik tentang apa yang terjadi di dalam direktori:du -h --max-depth=1
Untuk memeriksa ukuran semua direktori dalam direktori, Anda dapat menggunakan:
du -h --max-depth=1
sumber
du -h -d 1
di android.du -h -d 1
di OSXjika Anda hanya ingin melihat ukuran agregat folder dan mungkin dalam format MB atau GB, silakan coba skrip di bawah ini
sumber
-g
untuk 1-Gbyte dan-m
untuk 1-Mbyte. viaman du
sumber
Jika ini membantu, Anda juga dapat membuat alias di
.bashrc
atau.bash_profile
.Ini mencetak ukuran direktori saat ini atau direktori yang Anda berikan sebagai argumen.
sumber