Wie erhalte ich Dateisysteminformationen zu einer bestimmten Datei?

Wie erhalte ich Dateisysteminformationen zu einer bestimmten Datei?

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/fstabenthä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.extund mit welchen Optionen das Dateisystem eingebunden wurde?

Ist das Parsen der Ausgabe mounteine 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 --outputin 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

verwandte Informationen