两者都显示我们正在使用的文件数量。
然而它们都显示出不同的结果。
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 使用。因此,如果您使用某些以连字符开头的参数(例如文件名),那么您将需要使用“--”,以便该参数不会作为(无效)选项标志传递。它将被翻译为参数。