Output dapat dibuat sedikit lebih mudah untuk diurai dengan menggunakan -Popsi yang akan memastikan bahwa:
Informasi tentang setiap sistem file selalu dicetak tepat pada satu baris; perangkat mount tidak pernah diletakkan pada garis dengan sendirinya. Ini berarti bahwa jika nama perangkat pemasangan lebih dari 20 karakter (mis., Untuk beberapa pemasangan jaringan), kolom tidak selaras.
Ini membuatnya lebih mudah untuk mendapatkan ruang kosong yang tersedia:
$ df -Ph.| tail -1| awk '{print $4}'
( -hmenggunakan megabita, gigabita dan sebagainya. Jika sistem Anda tidak memilikinya, gunakan -kuntuk kilobyte saja.)
Jika kita melewati dfjalur, itu hanya akan mengembalikan 2 baris: baris header dan kemudian data tentang sistem file yang berisi jalur. Kita bisa menggunakan ekor untuk mengambil hanya baris kedua. Kami tahu bahwa ruang yang tersedia ada di kolom ke-4, jadi kami ambil dengan awk. Ini semua bisa dilakukan dengan awk:
Anda dapat mengoptimalkan perintah Anda dengan menggunakan variabel lingkungan $PWDalih-alih menggunakan substitusi perintah dan menghilangkan kebutuhan untuk ekor: df -Ph $PWD | awk 'NR==2{print $4}'
SiegeX
@ SiegeX: Saya setuju melakukan semuanya awklebih baik. Saya memasukkan perintah yang lebih panjang karena saya ingin memiliki contoh bagaimana seseorang dapat membangun rangkaian perintah sederhana untuk melakukan sesuatu yang lebih rumit. Saya telah memperbarui jawaban untuk menyertakan peningkatan Anda.
Steven D
-Padalah standar ( Puntuk POSIX). Tetapi -hekstensi GNU (juga ada pada beberapa sistem lain, tetapi misalnya pada OpenBSD tidak kompatibel dengan -P).
Gilles 'SO- stop being evil'
Anda dapat melakukan ini tanpa keluar dengan menggunakan --output = avail switch: df -h --output=avail . | tail -1
Floyd
"Anda dapat mengoptimalkan perintah Anda". Tidak juga. Menjalankan kedua pipa 10'000 kali (seperti dalam time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }) mengungkapkan tidak ada perbedaan berarti dalam kecepatan, yang tidak mengejutkan - memohon tailtidak mahal dan awkakan terhindar untuk melompat ke akhir input ... Mungkin ada perbedaan pada PDP-11 ...
David Tonhofer
10
Bagaimana dengan melakukan df -h .. Ini akan memberi Anda ruang kosong yang tersedia dari partisi tempat direktori kerja Anda saat ini.
Contoh kecil:
/usr/local/nagios/libexec # df -h .FilesystemSizeUsedAvailUse%Mounted on
/dev/mapper/vg00-lvol1
9.9G6.1G3.4G65%/
du -h
?Jawaban:
Output dapat dibuat sedikit lebih mudah untuk diurai dengan menggunakan
-P
opsi yang akan memastikan bahwa:Ini membuatnya lebih mudah untuk mendapatkan ruang kosong yang tersedia:
(
-h
menggunakan megabita, gigabita dan sebagainya. Jika sistem Anda tidak memilikinya, gunakan-k
untuk kilobyte saja.)Jika kita melewati
df
jalur, itu hanya akan mengembalikan 2 baris: baris header dan kemudian data tentang sistem file yang berisi jalur. Kita bisa menggunakan ekor untuk mengambil hanya baris kedua. Kami tahu bahwa ruang yang tersedia ada di kolom ke-4, jadi kami ambil denganawk
. Ini semua bisa dilakukan denganawk
:atau banyak set filter lainnya .
sumber
$PWD
alih-alih menggunakan substitusi perintah dan menghilangkan kebutuhan untuk ekor:df -Ph $PWD | awk 'NR==2{print $4}'
awk
lebih baik. Saya memasukkan perintah yang lebih panjang karena saya ingin memiliki contoh bagaimana seseorang dapat membangun rangkaian perintah sederhana untuk melakukan sesuatu yang lebih rumit. Saya telah memperbarui jawaban untuk menyertakan peningkatan Anda.-P
adalah standar (P
untuk POSIX). Tetapi-h
ekstensi GNU (juga ada pada beberapa sistem lain, tetapi misalnya pada OpenBSD tidak kompatibel dengan-P
).df -h --output=avail . | tail -1
time { I=0; while [ $I -lt 10000 ]; do df -Ph . | awk 'NR==2 {print $4}' > /dev/null; ((I++)); done }
) mengungkapkan tidak ada perbedaan berarti dalam kecepatan, yang tidak mengejutkan - memohontail
tidak mahal danawk
akan terhindar untuk melompat ke akhir input ... Mungkin ada perbedaan pada PDP-11 ...Bagaimana dengan melakukan
df -h .
. Ini akan memberi Anda ruang kosong yang tersedia dari partisi tempat direktori kerja Anda saat ini.Contoh kecil:
sumber
Dalam byte:
Dapat dibaca manusia:
atau
atau
sumber