
Was ist der beste Weg, um Dateisysteminformationen zu einer Datei herauszufinden?
Wenn ich beispielsweise eine Datei habe
/media/xyz/path/to/file.ext
Und /etc/fstab
enthält
//server1/Share1 /media/xyz cifs option1=value1,...
Wie erkenne ich, dass die Datei auf einer Samba-Freigabe liegt, dass sie den lokalen Pfad hat /path/to/file.ext
und mit welchen Optionen das Dateisystem eingebunden wurde?
Ist das Parsen der Ausgabe mount
eine portable Lösung? Oder parse findmnt
? Gibt es eine POSIX-kompatible Möglichkeit, dies zu erreichen?
Antwort1
stat(1) ist eine portable Möglichkeit, einige dieser Informationen herauszufinden, zum Beispiel:
stat --file-system --format="%T" /media/xyz/path/to/file.ext
Alles andere ist sehr betriebssystemabhängig und kann auf neueren Linux-Systemen problemlos findmnt --output
in einem Skript verwendet werden.
Antwort2
wenn ich Ihr Anliegen richtig verstanden habe und Teile aus vorherigen Antworten kombiniere, könnte das Folgende das sein, was Sie brauchen. Definieren Sie im Skript (zum Beispiel in Ihrer .bashrc) -
findpart ()
{
df -h $1|sed 1d|cut -d" " -f1|xargs findmnt -n
}
und dann können Sie es nach Bedarf ausführen
findpart /foo/file.ext