lsof:読み書き用に開いたファイルを表示する

lsof:読み書き用に開いたファイルを表示する

パーティションをに再マウントしようとするとread-onlyエラーが発生します/foo is busy。開いているすべての/fooファイルを一覧表示できます。

lsof /foo

read-onlyただし、ファイルが開いているかどうかはわかりませんread-write。開いているファイルだけを一覧表示する方法はありますかread-write

ベストアンサー1

この質問に具体的に答えるには、次のようにします。

lsof /foo | awk 'NR==1 || $4~/[0-9]+u/'

read-writeこれにより、マウントポイントの下に開いているファイルが表示されますfoo。しかし、実際にやりたいことは、書き込み用に開いているすべてのファイルを一覧表示することです。これには、開いたファイルwrite-onlyだけでなく開いたファイルも含まれますread-write。これを行うには、次の手順を実行します。

lsof /foo | awk 'NR==1 || $4~/[0-9]+[uw]/'

FD出力の4番目のフィールドが空で、他のフィールドが空でない場合、これらのコマンドは機能します。 Debian でコマンドにパスを含めると、このような場合がありますlsof。ただし、パスが含まれていない場合は、空のTID(そして混乱する可能性があるawk)追加のフィールドが印刷されます。マイルは、リリースまたはバージョンによってlsof異なります。

おすすめ記事