运行 一个程序并跟踪它在 unix 上的文件系统变化

running a program and keep track of its file system changes on unix

我正在寻找一种在 unix 上以某种方式 运行 程序的方法,这样我就可以看到它何时退出它对文件系统所做的更改,例如 "CREATED /home/foo/bar.txt" 或"CHANGED /home/foo/bar.txt"。如果您知道 library/module 可以执行此操作,我希望它支持 C++,Python 或 Shell。

您可以做的一件事是跟踪程序系统调用,然后对其进行分析。 例如,运行 具有 strace 和 catch 打开和写入系统调用的应用程序:

$ strace -e trace=open,write ./$APP_NAME