n'afficher que les disques physiques lors de l'utilisation de df et du montage

9

Quand j'utilise dfou mount, je suis surtout intéressé par les partitions de disques physiques. De nos jours, la sortie de ces commandes est dépassée par les systèmes de fichiers temporaires et virtuels, les groupes de contrôle et d'autres choses qui ne m'intéressent pas régulièrement.

Mes partitions physiques dans la sortie commencent toujours par ' /', j'ai donc essayé de créer des alias pour dfet mount:

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

Cela fonctionne bien pour mount1(bien qu'il affiche le ' /' en rouge), mais df1je voudrais parfois ajouter l' -hoption dfet je ne peux pas le faire df1 -h. Je préférerais ne pas avoir d'alias pour chaque combinaison d'options que je souhaiterais utiliser. Dois-je vraiment chercher à définir des fonctions en bash (je préférerais ne pas le faire)? Y a-t-il une meilleure solution pour df1?

yves
la source

Réponses:

6

Vous pouvez résoudre le df1problème d'argument en utilisant l'alias suivant:

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

assurez-vous d'ajouter tout autre type ( xfs, fuseblk(pour la prise en charge moderne de NTFS, comme l'a souligné @Pandya), etc.) qui vous intéresse. Avec cela, vous pouvez faire df1 -het obtenir le résultat attendu.

mounta une -toption mais vous ne pouvez pas la spécifier plusieurs fois (seule la dernière est prise), là j'utiliserais:

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

J'utilise grep -Eas egrepest déconseillé et l'utilisation /bin/grepgarantit que vous n'utilisez pas à --colour=autopartir d'un alias pour grep/egrep

Anthon
la source
df --type ntfsne montre pas la partition 5 ntfs et donc les sauter dans le résultat pour moi
Pandya
Je dois l'utiliser --type fuseblkpour cela
Pandya
@Pandya c'est ce que j'ai indiqué, vous devez ajouter d'autres types qui vous intéressent. Je n'ai pas eu de partitions ntfs dans mon système depuis plusieurs années, donc je ne sais pas d'où cela vient dans l'alias que j'utilise .
Anthon
1
@Pandya semble être --type ntfsdans mon alias à partir du moment où la prise en charge NTFS était minimale (le moment où vous deviez vérifier le système de fichiers sur votre partition NTFS après le redémarrage de Windows% -)). Mis à jour ma réponse, merci.
Anthon
3

Vous pouvez définir la fonction comme suit:

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

Exemple de sortie:

$ 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

Ici $@vous permet de saisir vos arguments! [Notez que cela $@doit toujours être écrit entre guillemets doubles, sauf si vous avez une raison concrète de ne pas le faire. -ed]

Pandya
la source
3

Si le passage à un autre dfest une option, utilisez-le à la pydfplace, car il n'affiche pas les systèmes de fichiers ayant 0 blocs par défaut, et a une jauge, des couleurs et d'autres propriétés activées par défaut. Il fonctionne assez bien df, et l'original est toujours disponible en utilisant de \dftoute façon.

Josip Rodin
la source
Pour moi, la réponse la plus utile ici. Malheureusement, cela n'existe pas pour mount.
emk2203
Un peu tard, mais pour moi, pydf a montré mon seul disque physique et 33 disques / dev / loop ## quand tout ce que je veux, c'est le disque physique. La réponse df acceptée fonctionne, mais je préfère plutôt ce formulaire: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere
1

Cette réponse tente de répondre aux préoccupations suivantes de Yves :

Je préférerais ne pas avoir d'alias pour chaque combinaison d'options (1)

et

bien qu'il montre le '/' en rouge (2)

et (3) ajouter une information importante à la sortie variable, qui est dfla ligne d'en-tête qui change en fonction des drapeaux fournis.

(1) Vous en avez besoin function, car par définition, cela prend des arguments. Et, il est très simple à définir et à utiliser comme vous le découvrirez ci-dessous.

(2) le rouge /est produit par grep --color, qui est un alias commun à greplui-même (vous pouvez le vérifier en exécutant alias).

code

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

Les sauts de ligne ci-dessus sont destinés à améliorer la lisibilité, vous pouvez les remplacer par de l'espace.

Copiez et collez cet extrait directement dans une session bash interactive ou, mieux encore, ajoutez-le à votre ~/.bashrc.

Exemple d'utilisation

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

Ce qu'il fait

La fonction df1appelle dfavec tous les arguments que vous lui transmettez et dirige ( |) la sortie vers sed, qui est invoquée avec -npour supprimer l'impression automatique de l'espace de motif. Le reste exprime les "scripts" sed, deux en fait:

  1. le script 1pimprime la 1ère ligne, qui dans notre cas est dfl'en-tête de (j'utilise la même chose pour la pstuyauterie),
  2. le script /^\//pcorrespond à n'importe quelle ligne commençant par /, puis l'imprime
  3. ; sépare les 2 scripts sed
Ori Sapogalaxy
la source
0

J'utilise alias df='df -hT -xtmpfs -xdevtmpfs'.

À peu près nul que vous devez utiliser un alias pour rendre GNU dfréellement utilisable sur Linux ces jours-ci. Il devrait y avoir une option pour n'afficher que les "vrais" systèmes de fichiers (quoi que cela signifie).

En fait, df -hxtmpfsprend la plupart des conneries et reste utilisable sans alias. Pas vraiment pire que netstat -tulnpça ... * soupir *

Nicolas Melay
la source
0

En train de lire man mount

Liste des montages
Le mode de liste est maintenu pour une compatibilité descendante uniquement. Pour une sortie plus robuste et personnalisable findmnt(8), en particulier dans vos scripts.

m'a montré une autre façon d'obtenir exactement la sortie souhaitée.

J'ai créé une fonction lsmounts

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

Explication des arguments:

  • -D: fournir une sortie telle que nous la connaissons df
  • -t: sélectionnez les types de systèmes de fichiers que vous souhaitez voir. La prépension noexclut les systèmes de fichiers mentionnés.

J'obtiens donc la sortie souhaitée

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
la source