df ve mount kullanırken yalnızca fiziksel diskleri göster


9

dfVeya kullandığımda mount, en çok fiziksel disk bölümleriyle ilgileniyorum. Günümüzde bu komutların çıktıları geçici ve sanal dosya sistemleri, grup grupları ve düzenli olarak ilgilenmediğim diğer şeyler yüzünden bunalmış durumda.

Çıktıdaki fiziksel bölümlerim her zaman ' /' ile başlar , bu yüzden dfve için takma adlar yapmayı denedim mount:

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

Bu mount1(' /' kırmızıyı gösteriyor olsa da) için Tamam çalışıyor , ancak df1bazen -hseçeneği eklemek dfve yapamamak istiyorum df1 -h. Kullanmak isteyebileceğim her seçenek kombinasyonu için bir takma ad olmamayı tercih ederim. Gerçekten bash işlevlerini tanımlamak bakmak zorunda mıyım (tercih etmem)? Bunun için daha iyi bir çözüm var mı df1?

Yanıtlar:


6

Bağımsız df1değişken sorununu aşağıdaki diğer adı kullanarak çözebilirsiniz :

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

(başka türü ekleme emin olun xfs, fuseblk@Pandya belirttiği gibi,), Modern NTFS desteği için vb () Sen ilgilenen in. Yapabileceğiniz ile bu df1 -hve beklenen sonuç almak.

mountbir -tseçenek var ama birden çok kez (sadece son alınır) belirtemezsiniz, orada kullanacağım:

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

Kullanımdan kaldırıldığı grep -Egibi kullanıyorum ve / için bir takma addan kullanmadığınızdan emin olunegrep/bin/grep--colour=autogrepegrep


df --type ntfs5 ntfs bölümünü göstermiyor ve bu yüzden onları benim için sonuç olarak atlıyor
Pandya

Kullanmak ettik --type fuseblkbunun için
pandya

@Pandya, belirttiğim bu, ilgilendiğiniz diğer türleri eklemeniz gerekiyor. Sistemimde birkaç yıldır ntfs bölümleri yok, bu yüzden kullandığım takma adda nereden geldiğinden emin değilim .
Anthon

1
@Pandya --type ntfs, NTFS desteğinin en az olduğu andan itibaren takma adımda olduğu gibi görünüyor (Windows% 'a yeniden başlattıktan sonra NTFS bölümünüzde bir dosya sistemi denetimi yapmanız gereken zaman). Cevabımı güncelledim, teşekkürler.
Anthon

3

İşlevi aşağıdaki gibi tanımlayabilirsiniz:

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

Örnek çıktı:

$ 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

İşte $@argümanlarınızı girmenizi sağlar! [ $@Somut bir nedeniniz olmadığı sürece her zaman çift tırnak işaretleri içinde yazılmalıdır. -ed]


3

Farklı dfbir seçeneğe geçmek bir seçenekse, pydfbunun yerine varsayılan olarak 0 bloğu olan dosya sistemlerini göstermediği ve varsayılan olarak bir ölçer, renkler ve diğer bazı özelliklerin etkin olduğu için kullanın. Oldukça iyi takma olarak çalışır dfve orijinal her zaman \dfyine de kullanılabilir .


Benim için burada en yararlı cevap. Ne yazık ki, bunun için mevcut değil mount.
emk2203

Biraz geç, ama benim için pydf tek fiziksel sürücü ve 33 / dev / döngü ## sürücüler tüm istediğim fiziksel sürücü gösterdi. Kabul edilen df yanıtı çalışıyor, ancak bunun yerine bu formu tercih ediyorum: takma ad dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere

1

Bu cevap, yves'in aşağıdaki endişeleri ele almaya çalışır :

Her seçenek kombinasyonu için bir takma ad olmamayı tercih ederim (1)

ve

kırmızı renkte '/' göstermesine rağmen (2)

ve (3) değişen çıktıya, dfsağlanan bayraklara göre değişen başlık satırı olan önemli bir bilgi parçası ekleyin .

(1) İhtiyacınız var function, çünkü tanım gereği argümanlar alıyor. Ve aşağıda bulacağınız gibi tanımlamak ve kullanmak çok basittir.

(2) kırmızı /, kendisi grep --coloriçin ortak bir takma ad olan üretilir grep(bunu çalıştırarak kontrol edebilirsiniz alias).

kod

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

Yukarıdaki yeni satırların okunabilirliği artırması amaçlanmıştır, bunları boşlukla değiştirebilirsiniz.

Bu snippet'i doğrudan etkileşimli bir bash oturumuna kopyalayın ve yapıştırın veya daha da iyisi kendinize ekleyin ~/.bashrc.

Örnek kullanım

$ 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% /

Bu ne yapar

Fonksiyon df1çağrıları dfne olursa olsun argümanlarla bunu ve borular (geçmesine |) çıktı sedile çağrılır, -ndesen alanının iletilerini engeller baskı. Gerisi sed "betikleri" ifade ediyor, ikisi aslında:

  1. senaryo 1p, bizim durumumuzun dfbaşlığı olan ilk satırı yazdırır ( psboru için de aynısını kullanıyorum ),
  2. komut dosyası , /^\//pile başlayan herhangi bir satırla eşleşir /ve ardından yazdırır
  3. ; 2 sed komut dosyasını ayırır

0

Ben kullanıyorum alias df='df -hT -xtmpfs -xdevtmpfs'.

GNU'yu dfbugünlerde Linux'ta gerçekten kullanılabilir hale getirmek için bir takma ad kullanmanız oldukça berbat . Yalnızca "gerçek" dosya sistemlerini gösterme seçeneği olmalıdır (ne anlama geliyorsa).

Aslında, df -hxtmpfssaçmalıkların çoğunu çıkarır ve bir takma ad olmadan kullanılabilir kalır. Gerçekten daha kötü değil netstat -tulnpve böyle ... * iç çeker *


0

Okuma man mount

Yuvaları
listeleme Liste modu yalnızca geriye dönük uyumluluk için korunur. findmnt(8)Özellikle komut dosyalarınızda daha sağlam ve özelleştirilebilir çıktı kullanımı için.

bana tam olarak istenen çıktıyı almanın başka bir yolunu gösterdi.

Bir işlev oluşturdum lsmounts

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

Argümanların açıklaması:

  • -D: bildiğimiz gibi çıktı sağlayın df
  • -t: görmek istediğiniz dosya sistemi türlerini seçin. Yukarıda nobelirtilenler, söz konusu dosya sistemlerini hariç tutar.

Böylece istenen çıktıyı alıyorum

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
...
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.