Bei Verwendung von df und mount werden nur physische Festplatten angezeigt

9

Wenn ich dfoder verwende mount, bin ich vor allem an physischen Festplattenpartitionen interessiert. Heutzutage wird die Ausgabe dieser Befehle von temporären und virtuellen Dateisystemen, Gruppen und anderen Dingen überfordert, an denen ich nicht regelmäßig interessiert bin.

Meine physischen Partitionen in der Ausgabe beginnen immer mit ' /', daher habe ich versucht, Aliase für dfund zu erstellen mount:

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

Das funktioniert OK für mount1(obwohl es das ' /' in rot anzeigt ), aber df1manchmal möchte ich die -hOption hinzufügen dfund kann es nicht df1 -h. Ich würde es vorziehen, nicht für jede Optionskombination, die ich verwenden möchte, einen Alias ​​zu haben. Muss ich mich wirklich mit der Definition von Funktionen in Bash befassen (ich würde es vorziehen, dies nicht zu tun)? Gibt es eine bessere Lösung für df1?

yves
quelle

Antworten:

6

Sie können das df1Argumentproblem mithilfe des folgenden Alias lösen :

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

Stellen Sie sicher, dass Sie einen anderen Typ hinzufügen ( xfs, fuseblk(für die moderne NTFS-Unterstützung, wie @Pandya hervorhob) usw.), an dem Sie interessiert sind. Damit können Sie df1 -hdas erwartete Ergebnis erzielen .

mounthat eine -tOption, aber Sie können sie nicht mehrmals angeben (nur die letzte wird verwendet), dort würde ich verwenden:

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

Ich verwende grep -Eas as egrepveraltet und /bin/grepstellt sicher, dass Sie keinen --colour=autoAlias ​​für grep/ verwendenegrep

Anthon
quelle
df --type ntfszeigt nicht 5 ntfs Partition und überspringt sie daher im Ergebnis für mich
Pandya
Ich habe zu verwenden , --type fuseblkfür die
Pandya
@Pandya, das habe ich angegeben. Sie müssen andere Typen hinzufügen, an denen Sie interessiert sind. Ich habe seit mehreren Jahren keine ntfs-Partitionen mehr in meinem System, daher bin ich mir nicht sicher, woher diese in dem von mir verwendeten Alias ​​stammen .
Anthon
1
@Pandya scheint --type ntfsin meinem Alias ​​zu stehen, als es nur minimale NTFS-Unterstützung gab (die Zeit, in der Sie nach dem Neustart von Windows% - - eine Dateisystemprüfung für Ihre NTFS-Partition durchführen mussten). Meine Antwort wurde aktualisiert, danke.
Anthon
3

Sie können die Funktion wie folgt definieren:

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

Beispielausgabe:

$ 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

Hier $@können Sie Ihre Argumente eingeben! [Beachten Sie, dass dies $@immer in doppelte Anführungszeichen gesetzt werden sollte, es sei denn, Sie haben einen konkreten Grund, dies nicht zu tun. -ed]

Pandya
quelle
3

Wenn das Wechseln zu einem anderen dfeine Option ist, verwenden Sie pydfstattdessen, da Dateisysteme mit standardmäßig 0 Blöcken nicht angezeigt werden und standardmäßig eine Anzeige, Farben und einige andere Eigenschaften aktiviert sind. Es funktioniert ziemlich gut als Alias dfund das Original ist \dfsowieso immer mit verfügbar .

Josip Rodin
quelle
Für mich die nützlichste Antwort hier. Leider gibt es das nicht für mount.
Emk2203
Ein bisschen spät, aber für mich zeigte pydf mein einzelnes physisches Laufwerk und 33 / dev / loop ## -Laufwerke, wenn ich nur das physische Laufwerk möchte. Die akzeptierte df-Antwort funktioniert, aber ich bevorzuge stattdessen dieses Formular: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere
1

Diese Antwort versucht, die folgenden Probleme von yves anzusprechen :

Ich würde es vorziehen, nicht für jede Optionskombination einen Alias ​​zu haben (1)

und

obwohl es das '/' in rot zeigt (2)

und (3) Hinzufügen einer wichtigen Information zu der variierenden Ausgabe, bei der es sich um dfdie Kopfzeile handelt, die sich entsprechend den bereitgestellten Flags ändert.

(1) Sie brauchen function, weil es per Definition Argumente braucht. Und es ist sehr einfach zu definieren und zu verwenden, wie Sie unten herausfinden werden.

(2) Das Rot /wird von erzeugt grep --color, was ein allgemeiner Alias ​​für sich grepselbst ist (Sie können dies überprüfen, indem Sie ausführen alias).

Code

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

Die obigen Zeilenumbrüche sollen die Lesbarkeit verbessern. Sie können sie durch Leerzeichen ersetzen.

Kopieren Sie dieses Snippet und fügen Sie es direkt in eine interaktive Bash-Sitzung ein oder hängen Sie es, noch besser, an Ihre an ~/.bashrc.

Anwendungsbeispiel

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

Was es macht

Die Funktion df1ruft dfmit allen Argumenten auf, an die Sie sie übergeben, und leitet ( |) an die Ausgabe weiter sed, die aufgerufen wird -n, um das automatische Drucken des Musterbereichs zu unterdrücken. Der Rest drückt die sed "Skripte" aus, zwei tatsächlich:

  1. Das Skript 1pdruckt die erste Zeile, in unserem Fall dfdie Kopfzeile (ich verwende dieselbe für psRohrleitungen).
  2. Das Skript /^\//pstimmt mit jeder Zeile überein, die mit beginnt /, und druckt sie dann aus
  3. ; trennt die 2 sed-Skripte
Ori Sapogalaxie
quelle
0

Ich benutze alias df='df -hT -xtmpfs -xdevtmpfs'.

Es ist ziemlich schade, dass Sie einen Alias ​​verwenden müssen, um GNU dfheutzutage unter Linux tatsächlich verwendbar zu machen . Es sollte eine Option geben, nur "echte" Dateisysteme anzuzeigen (was auch immer das bedeutet).

Nimmt tatsächlich df -hxtmpfsden größten Teil des Mülls heraus und bleibt ohne Alias ​​verwendbar. Nicht wirklich schlimmer als netstat -tulnpund so ... * seufz *

Nicolas Melay
quelle