GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa * hanya * mendapatkan jumlah byte yang tersedia pada disk di bash?

Anda dapat menggunakan awk,

df | awk '$1=="/dev/sda"{print $4}'

Mudah dibawa:

df -P /dev/sda1 | awk 'NR==2 {print $4}'

-P opsi memastikan bahwa df akan mencetak keluaran dalam format yang diharapkan, dan khususnya tidak akan memutus garis setelah nama perangkat meskipun panjang. Meneruskan nama perangkat sebagai argumen ke df menghilangkan bahaya apa pun dari penguraian, seperti mendapatkan informasi untuk /dev/sda10 saat Anda menanyakan /dev/sda1 . df -P cukup cetak dua baris, baris tajuk (yang Anda abaikan) dan satu baris data tempat Anda mencetak kolom yang diinginkan.

Ada risiko bahwa df akan menampilkan nama perangkat yang berisi spasi, misalnya jika volume dipasang dengan nama dan nama berisi spasi, atau untuk volume NFS yang titik pemasangan jarak jauhnya berisi spasi. Dalam hal ini, tidak ada cara yang sepenuhnya portabel untuk mengurai keluaran dari df . Jika Anda yakin bahwa df akan menampilkan nama perangkat persis yang Anda berikan (tidak selalu demikian), Anda dapat menghapusnya:

df -P -- "$device" | awk -vn=${#device} 'NR==2 {$0 = substr($0, n+1); print $3}'

Anda dapat menggunakan awk

df | grep sda | awk '{print $4}'

Linux
  1. Bagaimana Menemukan Jumlah Garis Vertikal Yang Tersedia Di Terminal?

  2. Bagaimana saya bisa mendapatkan status keyboard di Linux?

  3. Bagaimana cara menambahkan ikon ke prompt bash

  1. Bagaimana saya bisa mendapatkan nilai unik dari array di Bash?

  2. Bagaimana saya bisa menghitung jumlah karakter dalam variabel Bash

  3. Bagaimana cara mendapatkan direktori absolut dari sebuah file di bash?

  1. Cara hanya mendapatkan jumlah baris file

  2. Bagaimana cara mendapatkan jumlah disk fisik di Linux?

  3. Cara mendapatkan nomor tampilan yang ditugaskan oleh X