lsof和fuser-uvm有什么区别

lsof和fuser-uvm有什么区别

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

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

root@host [~]# lsof /home4
root@host [~]# lsof /home2
root@host [~]# lsof /home4

然后我们得到了

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

我哪里做错了?

答案1

两者的用法不同。

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

lsof -- /home4
lsof -- /home4 /home2

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

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

fuser -uv <filename> 

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

fuser -uvm /home3

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

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

答案2

这并非100%正确。字符串“--”仅在选项之后和路径列表之前使用一次,即

lsof [选项] [--] [名称]

以下命令

lsof -- /home4 -- /home2

除非当前目录中存在名为“--”的文件,否则将给出错误。

这个应该没问题

lsof -- /home4 /home2

一般来说,“--”表示“选项结束”,由 shell 使用。因此,如果您使用某些以连字符开头的参数(例如文件名),那么您将需要使用“--”,以便该参数不会作为(无效)选项标志传递。它将被翻译为参数。

相关内容