特定のファイルのファイルシステム情報を取得するにはどうすればよいですか?

特定のファイルのファイルシステム情報を取得するにはどうすればよいですか?

ファイルに関するファイル システム情報を調べる最良の方法は何ですか。

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

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

そして/etc/fstab含まれる

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

ファイルが Samba 共有上にあること、ローカル パスがあること/path/to/file.ext、ファイル システムがどのようなオプションでマウントされているかをどのように判断すればよいでしょうか?

出力を解析することはmount移植可能なソリューションですか? それとも parse ですかfindmnt? それを実現する POSIX 準拠の方法はありますか?

答え1

stat(1)はこれらの情報の一部を見つけるための移植可能な方法です。例:

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

その他はすべて OS に特化していますが、最近の Linux システムではfindmnt --outputスクリプトで簡単に使用できます。

答え2

あなたのニーズを正しく理解し、以前の回答を組み合わせて考えると、次のものが必要になるかもしれません。スクリプトで定義します(たとえば、.bashrc内)。

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

必要に応じて実行できます

findpart /foo/file.ext

関連情報