Answers:
该程序为(“列出打开的文件”)。lsof
如果仅打开Terminal并键入lsof
,则会得到所有打开文件的巨大列表,而是通过执行以下操作将其限制为一个命令:
lsof -c gnome-terminal
您还可以通过键入以下内容将搜索限制到特定目录
lsof -c gnome-terminal -a +D /tmp
或在一个特定目录中列出所有打开的文件,包括哪些应用程序已将其打开:
lsof /dev/urandom
请记住,某些进程是由超级用户root启动的,您可能需要放在sudo
命令前面,以获取有关此类进程的打开文件的更多信息。
要缩小搜索范围,可以指定grep
几行,即:
lsof /dev/urandom | grep chrome
输出的FD
(File Descriptor)列为您提供有关程序打开文件目的的信息(不一定是当前发生的情况):
r
表示该文件已打开以供阅读
w
表示该文件已打开以进行写入
u
表示已打开文件以供读取和写入
有关更多详细信息,请参阅手册页(man lsof
)。另外,如果您需要查找任何文件和目录,则Linux Filesystem Hierarchy Standard非常有用。
作为一个完整的过度杀伤选项,但它是实时的,您可以使用inotify:
sudo inotifywait -m -r /
请注意,这将消耗大量内存,并且需要很长时间来设置。如联机帮助页所述:
-r, --recursive
Watch all subdirectories of any directories passed as arguments.
Watches will be set up recursively to an unlimited depth. Sym‐
bolic links are not traversed. Newly created subdirectories
will also be watched.
Warning: If you use this option while watching the root direc‐
tory of a large tree, it may take quite a while until all ino‐
tify watches are established, and events will not be received in
this time. Also, since one inotify watch will be established
per subdirectory, it is possible that the maximum amount of ino‐
tify watches per user will be reached. The default maximum is
8192; it can be increased by writing to /proc/sys/fs/ino‐
tify/max_user_watches.
这也不会告诉您什么过程正在处理文件,但可能有助于识别发生的更改。使用“ -e open”可能有助于减少真正繁忙的系统上的某些噪音。