hanya tampilkan disk fisik saat menggunakan df dan mount

9

Ketika saya menggunakan dfatau mount, saya terutama tertarik pada partisi disk fisik. Saat ini output dari perintah-perintah itu kewalahan oleh filesystem sementara dan virtual, cgroups dan hal-hal lain yang saya tidak tertarik secara teratur.

Partisi fisik saya di output selalu dimulai dengan ' /', jadi saya mencoba membuat alias untuk dfdan mount:

alias df1="df | egrep '^/'"
alias mount1="mount | egrep '^/'"

Itu bekerja OK untuk mount1(meskipun itu menunjukkan ' /' dalam warna merah), tetapi untuk df1saya kadang-kadang ingin menambahkan -hopsi ke dfdan tidak bisa dilakukan df1 -h. Saya lebih suka tidak memiliki alias untuk setiap kombinasi opsi yang mungkin ingin saya gunakan. Apakah saya benar-benar harus melihat ke dalam mendefinisikan fungsi dalam bash (saya lebih suka tidak melakukannya)? Apakah ada solusi yang lebih baik df1?

Yves
sumber

Jawaban:

6

Anda dapat menyelesaikan df1masalah argumen dengan menggunakan alias berikut:

alias df1='df --type btrfs --type ext4 --type ext3 --type ext2 --type vfat --type iso9660'

pastikan untuk menambahkan tipe lain ( xfs, fuseblk(untuk dukungan NTFS modern, seperti yang ditunjukkan @Pandya), dll) Anda tertarik. Dengan itu Anda dapat melakukan df1 -hdan mendapatkan hasil yang diharapkan.

mountmemang memiliki -topsi tetapi Anda tidak dapat menentukannya beberapa kali (hanya yang terakhir diambil), di sana saya akan menggunakan:

alias mount1="mount | /bin/grep -E '^/'"

Saya menggunakan grep -Eas egrepsudah usang dan menggunakan /bin/grepmemastikan Anda tidak menggunakan --colour=autodari alias untuk grep/egrep

Anthon
sumber
df --type ntfstidak menampilkan partisi 5 ntfs dan karenanya melewatkannya untuk saya
Pandya
Saya sudah menggunakan --type fuseblkuntuk itu
Pandya
@ Pandya itulah yang saya indikasikan, Anda perlu menambahkan tipe lain yang Anda intrested. Saya belum memiliki partisi ntfs di sistem saya selama beberapa tahun, jadi saya tidak yakin dari mana asalnya di alias yang saya gunakan .
Anthon
1
@ Pandya kelihatannya --type ntfsada di alias saya sejak saat itu ada dukungan NTFS minimal (waktu di mana Anda harus melakukan pemeriksaan filesystem pada partisi NTFS Anda setelah reboot ke Windows% -)). Memperbarui jawaban saya, terima kasih.
Anthon
3

Anda dapat mendefinisikan fungsi sebagai berikut:

function df1() { df "$@" | grep -E '^/'; }

Contoh output:

$ df1 -h
/dev/sda8        25G  8.1G   16G  35% /
/dev/sda4        25G   20G  5.8G  78% /media/pandya/Documents+Edu
/dev/sda3       9.5G  7.1G  2.0G  79% /media/pandya/Ext4
/dev/sda7        24G   17G  6.9G  71% /media/pandya/Extra+Other
/dev/sda6        26G   25G  448M  99% /media/pandya/Media+Game
/dev/sda10       15G  7.9G  7.1G  53% /media/pandya/Miscellaneous
/dev/sda5        36G   22G   14G  63% /media/pandya/Software+OS

Di sini $@Anda dapat memasukkan argumen Anda! [Catatan yang $@harus selalu ditulis dalam tanda kutip ganda kecuali Anda memiliki alasan konkret untuk tidak melakukannya. -ed]

Pandya
sumber
3

Jika beralih ke berbeda dfadalah opsi, gunakan pydfsaja, karena tidak menunjukkan sistem file memiliki 0 blok secara default, dan memiliki ukuran, warna, dan beberapa properti lainnya yang diaktifkan secara default. Ini berfungsi dengan cukup baik alias df, dan yang asli selalu tersedia menggunakan \dfpula.

Josip Rodin
sumber
Bagi saya jawaban yang paling berguna di sini. Sayangnya, ini tidak ada mount.
emk2203
Sedikit terlambat, tetapi bagi saya pydf menunjukkan drive fisik tunggal saya dan drive 33 / dev / loop ## ketika semua yang saya inginkan adalah drive fisik. Jawaban df diterima berfungsi, tetapi saya lebih suka formulir ini sebagai gantinya: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere
1

Jawaban ini upaya untuk alamat yves ini keasyikan berikut:

Saya lebih suka tidak memiliki alias untuk setiap kombinasi opsi (1)

dan

meskipun menunjukkan '/' merah (2)

dan (3) menambahkan informasi penting ke output yang bervariasi, yaitu dfbaris header yang berubah sesuai dengan flag yang disediakan.

(1) Anda perlu function, karena menurut definisi dibutuhkan argumen. Dan, sangat mudah untuk didefinisikan dan digunakan karena Anda akan menemukan di bawah ini.

(2) merah /dihasilkan oleh grep --color, yang merupakan alias umum untuk grepdirinya sendiri (Anda dapat memeriksanya dengan menjalankan alias).

kode

function df1 
{ 
    df $* | sed -n '1p;/^\//p;'
}

Baris baru di atas dimaksudkan untuk meningkatkan keterbacaan, Anda dapat menggantinya dengan ruang.

Salin dan tempel cuplikan ini langsung ke sesi pesta interaktif atau, bahkan lebih baik, tambahkan ke ~/.bashrc.

Contoh penggunaan

$ df1 
Filesystem                        1K-blocks      Used Available Use% Mounted on
/dev/disk1                        487358464 316093104 171009360  65% /
/dev/disk2                           524032    302620    221412  58% /Volumes/Packer

$ df1 -hT
Filesystem                        Type   Size  Used Avail Use% Mounted on
/dev/disk1                        hfs    465G  302G  164G  65% /
/dev/disk2                        hfs    512M  296M  217M  58% /Volumes/Packer

$ df1 -hT .
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/disk1     hfs   465G  302G  164G  65% /

Apa yang dilakukannya

Fungsi df1panggilan dfdengan argumen apa pun yang Anda berikan dan pipa ( |) output untuk sed, yang dipanggil dengan -nuntuk menekan pencetakan otomatis dari ruang pola. Selebihnya mengekspresikan "skrip", dua sebenarnya:

  1. skrip 1pmencetak baris pertama, yang dalam kasus kami adalah dftajuk (saya menggunakan hal yang sama untuk psperpipaan),
  2. skrip /^\//pcocok dengan semua baris yang dimulai dengan /, lalu mencetaknya
  3. ; memisahkan skrip 2 sed
Ori Sapogalaxy
sumber
0

Saya menggunakan alias df='df -hT -xtmpfs -xdevtmpfs'.

Cukup banyak menyebalkan bahwa Anda harus menggunakan alias untuk membuat GNU dfbenar-benar dapat digunakan di Linux hari ini. Seharusnya ada pilihan untuk hanya menampilkan sistem file "nyata" (apa pun artinya).

Secara akut, buang df -hxtmpfssebagian besar omong kosong dan tetap dapat digunakan tanpa alias. Tidak terlalu buruk daripada netstat -tulnpitu ... * hah *

Nicolas Melay
sumber
0

Bacaan man mount

Mendaftarkan mount
Mode listing dipertahankan hanya untuk kompatibilitas mundur. Untuk penggunaan output yang lebih kuat dan dapat disesuaikan findmnt(8), terutama dalam skrip Anda.

menunjukkan kepada saya cara lain untuk mendapatkan hasil yang diinginkan.

Saya membuat suatu fungsi lsmounts

lsmounts () {
  findmnt -D -t nosquashfs,notmpfs,nodevtmpfs
}

Penjelasan untuk argumen:

  • -D: berikan output seperti yang kita tahu df
  • -t: pilih jenis sistem file yang ingin Anda lihat. Prepending notidak termasuk sistem file yang disebutkan.

Jadi saya mendapatkan output yang diinginkan

SOURCE                       FSTYPE   SIZE   USED  AVAIL USE% TARGET
/dev/mapper/vgubuntu-lvroot  ext4    78,3G  42,5G  31,7G  54% /
/dev/mapper/vgubuntu-lvhome  ext4   284,5G 146,4G 124,5G  51% /home
...
Guntbert
sumber