を使用してLinuxでファイルを削除しようとしましrm -rf file_nameたが、エラーが発生しました。
rm: file_name not removed.  Text file busy
このファイルを使用しているプロセスを確認するにはどうすればよいですか?
回答:
fuser次のようなコマンドを使用できます。
fuser file_name
ファイルを使用しているプロセスのリストを受け取ります。
より詳細な出力を受け取るために、さまざまなフラグを使用できます。
詳細については、フューザーのWikipediaの記事またはmanページを参照してください。
fuser実装が同じであるとは限らないか、同じように機能する可能性があります。-iがPOSIXで定義されている場合でも、使用している特定の実装には、必ずしもWikipediaの記事で説明されているものと同じオプションがあるとは限りません。たとえば、私は現在AIXを使用していfuserますが、このシステムで使用可能なものにも-iオプションがありません。
                    @jimの答えは正しいです-fuserあなたが望むものです。
さらに(または代わりに)、lsofプロセスを強制終了するためのアクセス許可が必要な場合(追加のコマンドを実行する必要がない場合)に、ユーザー名を含む詳細情報を取得するために使用できます。(もちろん、プロセスを強制終了することが必要な場合は、fuserその-kオプションをfuser使用してそれを行うことができます。他のシグナルを使用することもできます。-s詳細については、manページを確認してください。)
たとえばtail -F /etc/passwd、1つのウィンドウで実行している場合:
ghoti@pc:~$ lsof | grep passwd
tail      12470    ghoti    3r      REG  251,0     2037 51515911 /etc/passwd
lsofどのプロセスが特定のソケットを使用しているかを調べるためにも使用できることに注意してください。あなたの兵器庫にある優れたツール。
lsof | head -1すべてのヘッダーを表示します。
                    lsof | grep -E "PID|<your_process_name>"は、1行目とクエリするプロセスの両方を示しています。
                    tree標準入力から何を読みますか?はいの場合、その入力で何をしますか?
                    treeではなく、についてlsofです。私の知る限りtree、標準入力から読み取らないため、を実行するlsofとの出力は破棄されますlsof | tree ...。それlsof | tree MyFoldが正しければ、はと同じtree MyFoldです。これはコンテンツを表示するだけで、どのファイルが何らかのプロセスによって開かれたかは表示しません。