ファイルがPerlを使用してリモートファイルシステムにあるかどうかを確認するにはどうすればよいですか?
-
08-07-2019 - |
質問
パスがリモートファイルシステム(nfsなど)にあるのか、ローカルファイルシステムにあるのかを、シェルスクリプトまたはPerlでプログラムで判断する手っ取り早い方法はありますか?または、これを実行して/ etc / fstabを解析し、ファイルシステムのタイプを確認する唯一の方法ですか?
解決
stat -f -c %T <filename>
はあなたが望むことをすべきです。 -l
他のヒント
<!> quot; df -T <!> quot;を使用できます。ディレクトリのファイルシステムタイプを取得するか、-tオプションを使用して特定のタイプ(nfsなど)にレポートを制限し、<!> quot; no file systems processed <!> quot;で戻ってきた場合、それは1つではありませんあなたが探しているものの。
df -T $dir | tail -1 | awk '{print $2;}'
ディレクトリでdf
を使用して、ディレクトリ内にあるデバイスのみの情報を取得する場合、たとえば現在のディレクトリの場合:
df .
その後、出力を解析することができます。例:
df . | tail -1 | awk '{print $1}'
デバイス名を取得します。
私はsolaris7,8,9 <!> ampで以下をテストしました。 10そして信頼できるようです
/bin/df -g <filename> | tail -2 | head -1 | awk '{print $1}'
<!> quot; host:path <!> quotに一致させるのではなく、fsタイプを指定する必要があります。マウントポイントで。
一部のシステムでは、NFSファイルのデバイス番号が負です。したがって、
print "remote" if (stat($filename))[0] < 0
所属していません StackOverflow