工具,告诉我哪些文件是用Linux编写的?

时间:2009-07-25 20:50:27

标签: linux file iostat

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

7 个答案:

答案 0 :(得分:8)

strace -e trace=file -- <command>

将准确显示您的应用程序正在阅读和编写的文件

答案 1 :(得分:6)

如果要实时查看所有文件访问(最多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'` 

答案 2 :(得分:3)

  

查找最后修改的所有文件   一个小时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/

答案 3 :(得分:3)

您要找的是lsof。 它是一个命令行工具,但也有一个GUI for it at sourceforge

答案 4 :(得分:2)

不确定程序,但实用程序中的find命令有很多选项,可以让您查找在特定时间段内修改过的文件和/或目录。

例如:

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

会找到上次修改过的文本文件。

您可以将此调用包装在某种脚本中,也可以编写自己的快速小应用程序来使用结果。

这是一个包含更多信息和示例的网站:

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

答案 5 :(得分:2)

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

lsof -p

答案 6 :(得分:1)

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

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