mostra solo i dischi fisici quando si usa df e mount


9

Quando uso dfo mount, sono soprattutto interessato alle partizioni del disco fisico. Oggi l'output di questi comandi è sopraffatto da filesystem temporanei e virtuali, cgroups e altre cose che non mi interessano su base regolare.

Le mie partizioni fisiche nell'output iniziano sempre con ' /', quindi ho provato a creare alias per dfe mount:

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

Funziona bene mount1(anche se mostra " /" in rosso), ma a df1volte vorrei aggiungere l' -hopzione dfe non posso farlo df1 -h. Preferirei non avere un alias per ogni combinazione di opzioni che potrei voler usare. Devo davvero esaminare le funzioni di definizione in bash (preferirei non farlo)? C'è una soluzione migliore per df1?

Risposte:


6

È possibile risolvere il df1problema dell'argomento utilizzando il seguente alias:

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

assicurati di aggiungere qualsiasi altro tipo ( xfs, fuseblk(per il supporto NTFS moderno, come ha sottolineato @Pandya), ecc.) che ti interessa. Con ciò puoi fare df1 -he ottenere il risultato atteso.

mountha -tun'opzione ma non è possibile specificarla più volte (viene presa solo l'ultima), lì userei:

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

Sto usando grep -Ecome egrepè deprecato e utilizzo per /bin/grepassicurarsi che non stai usando --colour=autoda un alias per grep/egrep


df --type ntfsnon mostra partizioni 5 ntfs e quindi saltandole in conseguenza per me
Pandya

Devo usarlo --type fuseblkper questo
Pandya

@Pandya è quello che ho indicato, devi aggiungere altri tipi in cui sei interessato. Non ho partizioni ntfs nel mio sistema da diversi anni, quindi non sono sicuro da dove provenga l'alias che uso .
Anthon,

1
@Pandya sembra che --type ntfsfosse nel mio alias dal momento in cui c'era un supporto NTFS minimo (il tempo in cui dovevi fare un controllo del filesystem sulla tua partizione NTFS dopo il riavvio in Windows% -)). Aggiornato la mia risposta, grazie.
Anthon,

3

È possibile definire la funzione come segue:

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

Esempio di 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

Qui $@ti permette di inserire i tuoi argomenti! [Nota che $@dovrebbe sempre essere scritto tra virgolette doppie a meno che tu non abbia una ragione concreta per non farlo. -ed]


3

Se passare a una diversa dfè un'opzione, utilizzare pydfinvece, poiché non mostra i filesystem con 0 blocchi per impostazione predefinita e ha un indicatore, i colori e alcune altre proprietà abilitate per impostazione predefinita. Funziona abbastanza bene alias dfe l'originale è sempre disponibile usando \dfcomunque.


Per me la risposta più utile qui. Purtroppo, questo non esiste per mount.
emk2203,

Un po 'in ritardo, ma per me pydf ha mostrato la mia singola unità fisica e le unità 33 / dev / loop ## quando tutto ciò che voglio è l'unità fisica. La risposta df accettata funziona, ma preferisco invece questo modulo: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere,

1

Questa risposta tenta di rispondere alle seguenti preoccupazioni di Yves:

Preferirei non avere un alias per ogni combinazione di opzioni (1)

e

sebbene mostri '/' in rosso (2)

e (3) aggiungere un'informazione importante all'output variabile, che è dfla riga di intestazione che cambia in base ai flag forniti.

(1) È necessario function, perché per definizione accetta argomenti. Ed è molto semplice da definire e utilizzare come scoprirai di seguito.

(2) il rosso /è prodotto da grep --color, che è un alias comune a grepse stesso (puoi verificarlo eseguendolo alias).

codice

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

Le nuove righe sopra hanno lo scopo di migliorare la leggibilità, è possibile sostituirle con lo spazio.

Copia e incolla questo snippet direttamente in una sessione bash interattiva o, ancora meglio, aggiungilo al tuo ~/.bashrc.

Esempio di utilizzo

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

Cosa fa

La funzione df1chiama dfcon qualunque argomento lo passi e convoglia |l'output ( ) con sedcui viene invocato -nper sopprimere la stampa automatica dello spazio del modello. Il resto esprime gli "script" di sed, due in realtà:

  1. lo script 1pstampa la prima riga, che nel nostro caso è dfl'intestazione (io uso lo stesso per il pspiping),
  2. lo script /^\//pcorrisponde a qualsiasi riga che inizia con /, quindi lo stampa
  3. ; separa i 2 script sed

0

Io uso alias df='df -hT -xtmpfs -xdevtmpfs'.

Praticamente fa schifo che devi usare un alias per rendere GNU dfeffettivamente utilizzabile su Linux in questi giorni. Dovrebbe esserci un'opzione per mostrare solo filesystem "reali" (qualunque cosa significhi).

In pratica, df -hxtmpfselimina la maggior parte delle schifezze e rimane utilizzabile senza un alias. Non molto peggio di netstat -tulnpe così ... * sospiro *


0

Lettura man mount

Elenco dei supporti
La modalità di elenco è mantenuta solo per compatibilità con le versioni precedenti. Per un output più robusto e personalizzabile findmnt(8), specialmente negli script.

mi ha mostrato un altro modo per ottenere esattamente l'output desiderato.

Ho creato una funzione lsmounts

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

Spiegazione per gli argomenti:

  • -D: fornisce un output come lo conosciamo df
  • -t: seleziona i tipi di file system che vuoi vedere. Prepending noesclude i file system menzionati.

Quindi ottengo l'output desiderato

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
...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.