ファイルがNFSマウントにあることを確認する簡単なテストはありますか? (またはより一般的には、ファイルはどのタイプのファイルシステムに存在しますか?)fstabと一致する見苦しいプレフィックスを想像しています...
答え1
LinuxのGNUはstat
少なくとも:
stat -fc %T /path/to/the/file
nfs
ほとんどの一般的なファイルシステムで動作しますが、すべてではありません。
答え2
これは少しランダムですが、非常に汚いものではありません。
df -TP /path/to/your/file | tail -1 | awk '{print $2}'
ファイルシステム名にスペースが含まれると、競合が発生します。
答え3
私はCで答えを探していて、数年前のこの質問は最初のGoogleの結果として現れました。シェルスクリプトに焦点を当てていますが、私は探している他の人と私の結果を共有したいと思いました。
この問題と関連する質問について述べたように、移植可能な方法はありません。以下は、Cからファイル名(マウントポイントまたはマウントポイントの下の任意のファイルにすることができます)に基づいてファイルシステムタイプを取得するいくつかの移植不可能な方法です。
Linux
マンページの魔法単語の使用statfs(2)
とf_type
比較(例NFS_SUPER_MAGIC
:)
MacOS、FreeBSD、OpenBSD、NetBSD
statfs(2)
[またはstatvfs(2)
NetBSDでは]の後にf_fstypename
文字列を使用してください。 ("nfs"
NFSの場合に適用されます。)
他の *BSD および類似項目にこの内容がある可能性があります。上記は私がテストしたものです。
ソラリス
を使用してください。stat(2)
Solarisにメンバーstruct stat
がありますst_fstype
。 ("nfs"
NFSケースに適用されます。/etc/dfs/fstypes
リモートファイルシステムタイプの完全なリストを解析することを選択できます。)