显示哪些文件在Linux中写入的工具?

我在IOStat中发现,我的应用程序的某些部分正在广泛地编写,但我不知道它是哪个进程以及它正在写入哪个文件。 在Vista中有一个工具可以显示在过去30秒内活动的文件。 有没有类似的Linux?

Solutions Collecting From Web of "显示哪些文件在Linux中写入的工具?"

你在找什么是lsof 。 这是一个命令行工具,但在sourceforge上也有一个GUI 。

 strace -e trace=file -- <command> 

会显示你的应用程序正在读取和写入的文件

如果您想要实时查看所有文件访问(最多32个进程),则可以使用以下命令:

 strace -f -e trace=file `ps aux | tail -n +2 | awk '{ORS=" "; print $2}' | sed -e 's/\([0-9]*\)/\-p \1 /g' | sed -e 's/\-p $//g'` 

要查找在特定特定目录及其子目录中过去24小时(上一整天)修改的所有文件,请执行以下操作:

find / directory_path -mtime -1 -print

更多:

http://www.mydigitallife.info/2006/01/19/find-files-that-are-modified-today-or-since-certain-time-ago-in-unix/

不知道一个程序,但在实用程序中的查找命令有很多选项,这将允许您查找文件和/或在一定的时间内被修改的目录。

例如:

 $ find /home/you -iname "*.txt" -mtime -1 -print 

会找到1天前上次修改的文本文件。

你可以用某种脚本包装这个调用,或者编写你自己的快速小应用来使用结果。

这里有一个网站有更多的信息和例子:

http://www.cyberciti.biz/faq/howto-finding-files-by-date/

Linux提供了一个名为“dnotify”的文件更改通知API,以及命令行实用程序dnotify 。 您可以使用它来跟踪过去30年来的变化。

我可能会编写一个直接在Linux API上构建的应用程序,并丢弃所有超过30秒的事件。

lsof将列出给定进程的所有打开的文件:

lsof -p