lsof 和 fuser -uvm 有什么区别

use*_*951 5 process lsof

两者都显示了我们正在使用的文件数量。

然而,它们都显示出不同的结果。

root@host [~]# lsof /home4
root@host [~]# lsof /home2
root@host [~]# lsof /home4
Run Code Online (Sandbox Code Playgroud)

然后我们得到

fuser -uvm /home4

                     root       2621 Frce. (root)crond
                     root       2635 Frce. (root)atd
                     root       4554 frce. (root)S99firstboot
                     root       4768 .rce. (root)firstboot
                     root       6533 .rce. (root)setup
                     root      11042 Frce. (root)leechprotect
                     root      11049 Frce. (root)httpd
                     root      17885 Frce. (root)httpd
                     root      18163 .rce. (root)sshd
                     root      18184 .rce. (root)bash
                     nobody    18619 Frce. (nobody)httpd
                     nobody    18679 Frce. (nobody)httpd
                     nobody    18812 Frce. (nobody)httpd
                     nobody    18821 Frce. (nobody)httpd
                     nobody    18841 Frce. (nobody)httpd
                     nobody    18843 Frce. (nobody)httpd
                     nobody    18850 Frce. (nobody)httpd
                     nobody    18869 Frce. (nobody)httpd
                     nobody    18885 Frce. (nobody)httpd
                     nobody    18901 Frce. (nobody)httpd
                     nobody    18914 Frce. (nobody)httpd
                     root      18932 .rc.. (root)flush-7:0
                     root      30728 Frce. (root)cphulkd
                     root      30756 Frce. (root)cpsrvd-ssl
                     root      30806 Frce. (root)cpdavd
                     root      30833 .rce. (root)queueprocd
                     root      30904 Frce. (root)tailwatchd
                     root      30913 Frce. (root)cpanellogd
Run Code Online (Sandbox Code Playgroud)

我哪里做错了?

Joh*_*Siu 10

两者的用法不同。

对于lsof, 只显示特定路径的打开文件,放在--指定的第一个路径前面:

lsof -- /home4
lsof -- /home4 /home2
Run Code Online (Sandbox Code Playgroud)

lsof 将显示包含路径的所有打开的文件。

对于fuser,另一方面,显示打开您指定文件的进程

fuser -uv <filename> 
Run Code Online (Sandbox Code Playgroud)

要显示访问特定路径的进程,请使用 -m

fuser -uvm /home3
Run Code Online (Sandbox Code Playgroud)

fuser 在识别打开特定文件的进程 ID 时更有用。

lsof 找出特定进程打开的所有文件很有用。