の出力では、lsof
この列は常に開かれたファイルの解決された絶対パス名を出力しますかNAME
?.
..
たとえば、cd
ディレクトリへのシンボリックリンクに移動し、プログラムを実行してそのディレクトリの下のファイルを開くと、ファイルの解決された絶対パス名のみがlsof
表示されますか?
開いたファイルの未解決の絶対パス名を出力できますかlsof
?解決されていないということは、ディレクトリシンボリックリンクがパス名になければならないことを意味します。
ありがとうございます。
ベストアンサー1
オプションがない場合は、解析された形式でパス名を指定する必要があります。 ~からlsof(8) マニュアル:
開くファイルは、汎用ファイル、ディレクトリ、ブロック特殊ファイル、文字特殊ファイル、実行可能テキスト参照、ライブラリ、ストリーム、またはネットワークファイル(インターネットソケット、NFSファイル、またはUNIXドメインソケット)です。パスごとにファイルを選択するか、ファイルシステム内のすべてのファイルを選択できます。
もちろん、次のエラーがある可能性があります。パス名が長すぎます。、この場合、パス名は解析されませんが、明らかに次のlsof
ように異なります。周囲のラッパー機能readlink()
、その仕事をしなければなりません。
次のようにファイル名を指定する場合lsof [options] [--] names
:
名前リストする特定のファイルのパス名。シンボリックリンクは使用前に解決されます。 「--」オプションを使用して、以前のオプションと名前を区別できます。
もちろん、ファイル名の解析に標準的な規則が適用されます。シンボリックリンクレベルが多すぎます。エラーが発生しました。lsof
MAXSYMLINKS変数によって異なる Linuxカーネルで最大40個のシンボリックリンクでハードコーディングと変数が定義されていない他のシステムの場合は、-32に設定してください。。
-b
オプションを指定すると、ファイル名は解析されません。
第三に、lsofがシステムマウントテーブルから取得したファイルシステムディレクトリ名がシンボリックリンクである場合、lsofはこれらのリンクを解決できません。これは、-bオプションを使用すると、lsofがシンボリックリンクの解決に使用するカーネルreadlink(2)関数の使用を防止するためです。