gpt4 book ai didi

linux - 如何在 Linux 中查看正在使用的文件

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:10 26 4
gpt4 key购买 nike

我有一个问题,如何查看 Linux 中正在使用的文件。老实说,这个操作系统不是普通的 linux 版本,它非常残缺,所以例如没有像“lsof”这样的命令。我找到了命令“strace”,但这不是我要找的。我听说我可以用黑客内核列出这个文件?

我想看看哪个文件正在使用,因为这台机器上有一点空闲空间,我想删除程序运行时没有使用的文件。

对不起我的英语不好。

最佳答案

您可以通过遍历 /proc virtual filesystem 来按进程检查打开的文件

每个正在运行的进程在/proc/PID 中都有一个条目。每个进程目录中都有一个名为“fd”的目录,代表当前打开的进程file descriptors .这些显示为指向实际资源的链接。

例如在我运行的虚拟机上

root@wvm:/proc/1213/fd# pidof dhclient
1213
root@wvm:/proc/1213/fd# cd /proc/1213/fd
root@wvm:/proc/1213/fd# ls -l
total 0
lrwx------ 1 root root 64 Apr 8 09:11 0 -> /dev/null
lrwx------ 1 root root 64 Apr 8 09:11 1 -> /dev/null
lrwx------ 1 root root 64 Apr 8 09:11 2 -> /dev/null
lrwx------ 1 root root 64 Apr 8 09:11 20 -> socket:[4687]
lrwx------ 1 root root 64 Apr 8 09:11 21 -> socket:[4688]
l-wx------ 1 root root 64 Apr 8 09:11 3 -> /var/lib/dhcp/dhclient.eth0.leases
lrwx------ 1 root root 64 Apr 8 09:11 4 -> socket:[4694]
lrwx------ 1 root root 64 Apr 8 09:11 5 -> socket:[4698]
root@wvm:/proc/1213/fd#

查看“dhclient”的内核进程信息 - 我找到它的 pid,然后在 fd 子目录中查找此进程 ID。它有一小组打开的描述符 - stdin、stdout 和 stderr (0,1,2) 都已附加到/dev/null,有四个套接字打开,但文件描述符 3 附加到数据文件 /var/lib/dh​​cp/dhclient.eth0.leases

因此您可以使用 shell 工具复制 lsof 的功能来遍历/proc 并从这些链接中过滤掉文件名。

关于linux - 如何在 Linux 中查看正在使用的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com