特定のファイルのファイルシステム情報を取得するには?

特定のファイルのファイルシステム情報を取得するには?

ファイルのファイルシステム情報を見つけるための最良の方法は何ですか?

たとえば、ファイルがある場合

/media/xyz/path/to/file.ext

そして/etc/fstab包含

//server1/Share1 /media/xyz cifs option1=value1,...

/path/to/file.extファイルがSamba共有に存在するか、ローカルパスがあるか、ファイルシステムをマウントするためにどのオプションが使用されているかをどのように確認できますか?

mountポータブルソリューションの出力を解析しますか?または分析findmnt?これを達成するPOSIX準拠の方法はありますか?

答え1

stat(1) は、次の情報の一部を見つける移植可能な方法です。

stat --file-system --format="%T" /media/xyz/path/to/file.ext

他のすべてはオペレーティングシステムによって異なり、最新のLinuxシステムではfindmnt --outputスクリプトで簡単に使用できます。

答え2

お客様の要件を正しく理解し、以前の回答と組み合わせると、次のことが必要になる場合があります。スクリプト(例:.bashrc)で定義します。

findpart ()
{
df -h $1|sed 1d|cut -d" " -f1|xargs findmnt -n
}

その後、必要に応じて実行できます。

findpart /foo/file.ext

関連情報