Saya menulis penginstal di bash. Pengguna akan pergi ke direktori target dan menjalankan skrip penginstalan, jadi tindakan pertama yang harus dilakukan adalah memeriksa apakah ada cukup ruang. Saya tahu bahwa df akan melaporkan semua sistem file, tetapi saya bertanya-tanya apakah ada cara untuk mendapatkan ruang kosong hanya untuk partisi tempat direktori target berada.
Edit - jawaban yang saya dapatkan
df $PWD | awk '/[0-9]%/{print $(NF-2)}'
Agak aneh karena df tampaknya memformat keluarannya agar sesuai dengan terminal, jadi dengan nama titik pemasangan yang panjang, keluarannya digeser ke bawah satu baris
-P
bendera untukdf
, Anda akan mendapatkan semuanya dalam satu baris.du -hs .
untuk melihat ruang disk yang digunakan untuk direktori saat ini.Jawaban:
Iya:
untuk direktori saat ini.
jika Anda ingin memeriksa direktori tertentu.
Anda mungkin juga ingin memeriksa
stat(1)
perintah jika sistem Anda memilikinya. Anda dapat menentukan format keluaran untuk mempermudah penguraian skrip Anda. Inilah sedikit contoh:sumber
-k
. (coreutils df defaultnya adalah 1k blok, jadi Anda cukup aman di Linux - tetapi jika Anda memiliki coreutils, Anda memilikinyastat
, dan itu bahkan lebih aman - tidak perlu parsing).%a*%s
bukan%a*%S
. Saya tidak yakin apakah ini perbedaan atau salah ketik.%S
(kapital) menurut halaman manual di RedHat. Tidak dapat menemukan sistem file di mana%s != %S
pada beberapa RedHats saya juga memiliki akses, jadi tidak dapat memeriksa :-(df
perintah: Laporkan penggunaan ruang disk sistem filedu
perintah: Perkirakan penggunaan ruang fileKetik
df -h
ataudf -k
untuk mencantumkan ruang disk kosong:ATAU
du
menunjukkan berapa banyak ruang yang digunakan satu atau lebih file atau direktori:The
-s
pilihan merangkum ruang direktori menggunakan dan-h
pilihan menyediakan Manusia dapat dibaca output.sumber
Saya pikir ini harus menjadi komentar atau edit untuk jawaban ThinkingMedia pada pertanyaan ini ( Periksa ruang disk kosong untuk partisi saat ini di bash ), tetapi saya tidak diizinkan untuk berkomentar (tidak cukup rep) dan hasil edit saya telah ditolak (alasan: "ini harus menjadi komentar atau jawaban"). Jadi tolong, kekuatan alam semesta SO, jangan mengutuk saya karena mengulangi dan memperbaiki "jawaban" orang lain. Tetapi seseorang di internet salah! ™ dan mereka tidak mengizinkan saya memperbaikinya.
Kode
memiliki kekurangan substansial: Ya, itu akan menghasilkan keluaran
50G
gratis sebagai 50 - tetapi juga akan menghasilkan keluaran5.0M
gratis sebagai 50 atau3.4G
gratis sebagai 34 atau15K
gratis sebagai 15.Untuk membuat skrip dengan tujuan memeriksa sejumlah ruang disk kosong, Anda harus mengetahui unit yang Anda periksa. Hapus itu (sebagai
sed
pada contoh di atas) angkanya tidak masuk akal lagi.Jika Anda benar-benar ingin berhasil, Anda harus melakukan sesuatu seperti:
Juga untuk penginstal untuk
df -k $INSTALL_TARGET_DIRECTORY
mungkin lebih masuk akal daripadadf -k "$PWD"
. Terakhir, harap dicatat bahwa--output
flag tidak tersedia di setiap versi df / linux.sumber
--output=avail
Anda mendapatkan ukuran dalam byte dengan cara ini.
sumber
--output=avail
Contoh lengkap untuk seseorang yang mungkin ingin menggunakan ini untuk memantau titik pemasangan di server. Contoh ini akan memeriksa apakah / var / spool di bawah 5G dan mengirim email ke orang tersebut:
sumber
Untuk mengetahui penggunaan direktori tertentu di GB atau TB di linux perintahnya adalah,
df -h / dir / inner_dir /
df -sh / dir / inner_dir /
dan untuk mengetahui penggunaan direktori tertentu dalam bit di linux perintahnya adalah,
df-k / dir / inner_dir /
sumber
Ketik perintah shell:
atau
atau
Ini akan menampilkan daftar ruang disk kosong untuk setiap titik pemasangan.
Anda juga dapat menampilkan / melihat kolom tunggal.
Tipe:
Catatan: Di sini 3 adalah nomor kolom. Anda dapat memilih kolom mana yang Anda butuhkan.
sumber