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


8

ファイルに関するファイルシステム情報を見つける最善の方法は何ですか。

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

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

そして/etc/fstabが含まれています

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

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

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


df /path/to/fileパーティションまたはマウントが表示されます。
2016

@thrigに感謝します。これが最初のステップです。そこからマウントオプションなどの情報を取得するための最良の方法は何ですか?
kbaはモニカの2016

Linuxでは、解析できます/proc/mounts。同じことを達成するためのBSD / OSX互換の方法はありますか?
kbaはモニカの2016

ファイルを見ただけ?できません!UNIXライクなオペレーティングシステムの場合、アプリケーションは物理的な場所に関係なくパスを使用してそれらにアクセスできます
Edward Torvalds

@edwardtorvaldsいいえ、ファイルを見るだけでなく、ファイルmountシステムやオプションなどを取得するための解析などについて尋ねたのはそのためです。この情報を* BSDとOSXで見つけるための最良の方法はまだわかりません。これを必要とするライブラリに取り組む時間はありませんでしたが、そうすればフィードバックします。私が見たところ、mount -PLinux / BSD全体でかなり信頼できるようです。
kbaは2016

回答:


1

stat(1)は、これらの情報の一部を見つけるためのポータブルな方法です。例:

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

それ以外はすべて非常にOS固有であり、最近のLinuxシステムfindmnt --outputではスクリプトで簡単に使用できます。


statまた、OS固有です。
don_crissti 2016年

0

私があなたの必要性を正しく理解し、以前の答えからのビットを組み合わせる場合、以下があなたが必要とするものかもしれません。スクリプトで定義する(たとえば、.bashrcで)-

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

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

findpart /foo/file.ext

findmntそれがこれを行うことができ、すべてのものを必要としないすべて自身で
don_crissti

理論的には、はい。実際には、私は-Tをcentos 6で動作させることができませんでしたが、このソリューションでは動作します。
Gil Shabtai 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.