
Gibt es einen alternativen Befehl, der dasselbe macht wie findmnt -T . -o TARGET |tail -n 1
?
Beispiel: Wenn mein aktuelles Arbeitsverzeichnis ist /media/username/HDD/subdir1/subdir2
, würde dieser Befehl ausgeben /media/username/HDD/
.
Unter Windows lautet der Pfad zum obersten Verzeichnis des aktuellen Laufwerks/der aktuellen Partition \
( /
funktioniert auch incmd), da Windows mit Laufwerksbuchstaben arbeitet statt„alles ist eine Datei“.
Unix arbeitet einheitlicher und modularer, aber wie findet man den Einhängepunkt einer Partition? Wenn es keine kürzere Lösung als gibt findmnt -T . -o TARGET |tail -n 1
, ist das kein Problem. Ich wollte nur wissen, ob es auch anders geht.
Antwort1
Wenn ich mir das ansehe, man findmnt
sehe ich eine Reihe von Vorschlägen, die scheinbar das gewünschte Ergebnis beim Suchen des Einhängepunkts für ein Dateisystem erzielen:
findmnt --first-only --noheadings --output TARGET --target "$PWD"
/home
Oder mit weniger Lesbarkeit:
findmnt -fno TARGET -T "$PWD"
/home
Antwort2
Wenn Sie es nur für sich selbst herausfinden möchten und nicht zur späteren Verwendung in einer Variablen, werden Sie keinen kürzeren Weg finden als df .
:
$ df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 343650580 232263752 93860660 72% /home
Das enthält natürlich zusätzliche Details und kann daher nicht verwendet werden, um den Gerätenamen direkt in einer Variable zu speichern. Es ist jedoch sehr einfach zu analysieren:
$ df . | grep -Po '^/\S+'
/dev/sda6
$ df . | awk '/^\//{print $1}'
/dev/sda6
Wenn Sie aber wirklich einen einzigen Befehl zum Drucken benötigen, dann@roaimasfindmnt
wird das beste sein.