Ich kann tun df .
, um einige Informationen zu dem Mount abzurufen, in dem sich das aktuelle Verzeichnis befindet, und ich kann alle gewünschten Informationen abrufen mount
, aber zu viele Informationen (Informationen zu anderen Mounts). Ich kann es nach unten greifen, frage mich aber, ob es einen besseren Weg gibt.
Gibt es einen Befehl mountinfo
, mountinfo .
der Informationen gibt, die ich möchte (wie df .
, aber mit den Informationen, die mount
gibt.)
Ich benutze Debian Gnu + Linux.
filesystems
mount
disk-usage
Strg-Alt-Delor
quelle
quelle
stat
Befehl kann auch verwendet werden. Ich bin mir jedoch nicht sicher, ob die%m
Option, die den Einhängepunkt angibt, in Ihrer Version des Systems unterstützt wird. Ich habe mein System eingecheckt und es schien den Mount-Punkt nicht zurückzugeben.stat "--printf=%m\n" .
den Mount-Punkt des Dateisystems ab, in dem sich das aktuelle Verzeichnis befindet. Auf diese Weise können wir einige der Antworten vereinfachen. Vielen Dank.Antworten:
Ich denke du willst so etwas:
Bei Verwendung der Option
Wenn der Pfad keine Mountpoint-Datei oder kein Mountpoint-Verzeichnis ist, werdenfindmnt
die Pfadelemente in umgekehrter Reihenfolge überprüft, um den Mountpoint abzurufen. Sie können nur bestimmte Felder über drucken-o, --output [list]
.Eine
findmnt --help
Liste der verfügbaren Felder finden Sie unter.Alternativ können Sie auch Folgendes ausführen:
Das Problem, auf das Sie stoßen, ist, dass alle Pfade relativ zu irgendetwas sind, also müssen Sie nur über den Baum laufen. Jedes Mal.
findmnt
ist ein Mitglied des Util-Linux-Pakets und das schon seit ein paar Jahren. Unabhängig von Ihrer Distribution sollte es jetzt bereits auf Ihrem Linux-Computer installiert sein, wenn Sie auch über dasmount
Tool verfügen .findmnt
Gibt alle Mount-Informationen ohne Mount-Point-Argument aus, und nur die für das Argument mit einem. Das-D
ist die emulierendf
Option. Ohne-D
seine Ausgabe ist ähnlich wiemount
's - aber weitaus konfigurierbarer. Probieren Sie es ausfindmnt --help
und überzeugen Sie sich.Ich stecke es in eine Subshell, damit sich das aktuelle Verzeichnis der aktuellen Shell nicht ändert.
So:
AUSGABE
Wenn Ihnen die
-D
Option nicht zur Verfügung steht (nicht in älteren Versionen von util-linux) , brauchen Sie sich keine Sorgen zu machen - es ist in jedem Fall nur ein praktischer Schalter. Beachten Sie die Spaltenüberschriften, die es für jeden Aufruf erzeugt - Sie können diese für jeden Aufruf mit der-o
Option utput einschließen oder ausschließen . Ich kann die gleiche Ausgabe erhalten-D
wie:AUSGABE
quelle
-D
, ich habe diese Option nicht. (Ich bin auf Debian7, util-linux 2.20.1-5.3)df
- ich bin bereit zu wetten, dass es eine Schleife macht, Sie müssen es nur nicht dazu auffordern.findmnt $(stat "--printf=%m\n" .)
findmnt
hat eine-T
Option, die diecd ..
Schleife umgehen kann . Könnte jemand anderem nützlich sein.Die Linux / Unix-Methode besteht darin, eine Toolbox mit kleinen Dienstprogrammen bereitzustellen, die in Kombination die gewünschten Ergebnisse liefern.
Sie neigen nicht dazu, für jede Gelegenheit einen Nutzen zu haben. Stattdessen haben Sie viele kleine nützliche Hilfsprogramme, die mit Pipes usw. kombiniert werden. Der Vorteil ist, dass Sie Ihr eigenes Hilfsprogramm ganz einfach schreiben können, wenn keines verfügbar ist.
Um beispielsweise die gewünschten Informationen abzurufen, können Sie Folgendes verwenden:
Wenn Sie das Obige mit verschiedenen Verzeichnissen wiederverwenden möchten, erstellen Sie ein Skript:
Speichern Sie es als
mountinfo
und machen Sie es ausführbar (chmod +x mountinfo
). Sie können es dann verwenden als:Wenn Sie ein System wollen, das ein Dienstprogramm für alles hat, von dem keines miteinander interoperiert, kann Ihnen ein gewisser Mr Gates vielleicht helfen ;-)
quelle
--output
existiert nur in sehr neuen Versionen von GNU coreutils (≥8.22).mount
ohne Optionen ein bisschen nachgedacht zu sein scheint: Mit Optionen, die Sie Mount-Punkte erstellen, ohne sie aufzulisten, hoffte ich auf ein besseres Listen-Tool. Wie wir sehen, hat uns @mikeserv gezeigtfindmnt
.Es kann etwas chaotisch sein, wenn die Einhängepunkte Leerzeichen enthalten, dies sollte jedoch funktionieren, außer in Fällen, in denen die Einhängepunkte Zeilenumbrüche enthalten:
df -P
gibt eine Zeile für das Dateisystem aus; Ohne diese Optiondf
können zwei Zeilen ausgegeben werden, wenn der Einhängepunkt lang ist. Der Name des Einhängepunkts beginnt in derselben Spalte wie die Bezeichnung "Eingehängt in" in der Kopfzeile.Nachdem wir den Einhängepunkt erhalten haben, suchen wir ihn in der Ausgabe von
mount
.quelle
Ich kenne keinen Befehl, aber Sie könnten eine Funktion erstellen. Sie können das Folgende zu Ihrem hinzufügen
.bashrc
:Dadurch wird der
mount
Befehl ausgeführt und die Ausgabe an übergebengrep
.grep
wird nach der Ausgabe von suchendf -P "$1" | tail -n 1 | awk '{print $1}'
und sie aufschlüsseln:df -P "$1"
wirddf
auf das Argument ausgeführt, das an die Funktion übergeben wurde,tail -n 1
gibt nur die zweite Zeile aus, die diepartition
Informationen enthält .awk '{print $1}'
Gibt den ersten Teil dieser Zeile aus, z/dev/sda5
. B. die Festplatten- / Partitionsnummer . Das ist es, wonachgrep
im Befehl mount gesucht und ausgegeben wird.Geben Sie eine Quelle für Ihre
.bashrc
Datei ein, um die Änderungen anzuwenden, oder melden Sie sich ab und wieder an.Wenn Sie jetzt ausführen
mountinfo .
, erhalten Sie die gewünschte Ausgabe.quelle
mount
ohne Optionen ein bisschen von scheinen Ein nachträglicher Gedanke: Mit Optionen, die Sie erstellen, ohne sie aufzulisten, erhoffte ich mir ein besseres Listen-Tool. Wie wir sehen, hat uns @mikeserv gezeigtfindmnt
.Wenn Sie eine nicht ganz alte Version der GNU-Coreutils df verwenden,
echo $(df . --output=target | tail -n 1)
funktioniert dies. Ebenso mitstat -c '%m' .
, obwohl ich bemerke, dass https://linux.die.net/man/1/stat die Dokumentation der Formatoption fehlt%m
.Es ist mühsam, dies tragbar zu machen: Keine der oben genannten Funktionen funktioniert mit den BSD- oder Cygwin-Versionen von stat oder df. Wenn nicht die Möglichkeit von Leerzeichen in den Pfaden der Einhängepunkte
df -P . | tail -1 | awk '{ print $NF}'
bestünde , wäre das gut, aber häufig haben USB-Flash-Laufwerke Leerzeichen im Datenträgernamen, die wahrscheinlich im Einhängepfad erscheinen und diesen aufheben. Für die Portabilität ist Perl praktisch überall installierbar und CPAN verfügt über das Modul Sys :: Filesystem :: MountPoint , das die gewünschte Funktionalität bietet.quelle
echo $()
der Befehl hinzufügt?