linux命令"lsof“返回正在访问的文件,我在shell中尝试使用vi打开一个文件,用kwrite打开另一个文件,然后返回并得到vi的进程,但没有kwrite进程,如下所示
[linux@localhost shell_ex]$ lsof +d .
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 3458 linux cwd DIR 253,2 50 953101 .
bash 3747 linux cwd DIR 253,2 50 95
lsof命令可以列出打开的文件,包括网络连接。
我认为它应该像其他系统工具一样工作,这些工具从Linux文件系统中的/proc/、/dev/或/sys位置收集信息。
但是,当我试图从这些位置查找有关打开文件的信息时,我失败了:
ls /proc/self/fd
ls /proc/net/tcp
ls /dev/fd/
lsof是如何获得这些信息的?
我有以下文件夹结构:
AllMyWork/
--.git/
--Proj1/
file1.cpp, ..., file10.cpp
--WindowsOnly/ (this subfolder does not exist on Linux machine)
filea.bat
--LinuxOnly/ (this subfolder does not exist on Windows machine)
fileb.sh
我在Windows机器和Linux机器上使用Proj1进行交替操作。这两台机器通过.git/和Proj1/及其内容file1.c