检查文件是否已创建和删除?

时间:2015-09-24 14:15:42

标签: linux bash file testing signals

我需要测试一个创建临时文件的程序。运行完成后,将删除该文件。如何检查文件是否已创建和删除。

我正在考虑发送一些信号进行处理(比如Ctrl-Z)暂停它并检查但应该更简单。

我在Linux中使用bash。

2 个答案:

答案 0 :(得分:2)

由于您无权访问程序代码,因此您可以使用 strace 工具拦截该进程发出的所有系统调用。然后使用简单的greps,您可以查找文件创建,删除和所有相关操作。可能你必须使用“-f”选项来确保记录所有内容,包括任何进程的子进程执行的操作

答案 1 :(得分:0)

如果可以肯定地知道何时创建文件,您可以使用the link command挂起到该文件。例如,在您正在测试的代码中,有一个类似的序列:

open some temporary file for writing
# do stuff
write stuff to open file
close file
unlink file

如果在测试程序中的open和unlink之间,你可以运行

ln the_temp_file my_temp_file

然后当发生取消链接时,测试的程序将不知道你有一个文件的硬链接,所以它没有从文件系统中删除。

这不适用于符号链接ln -s,因此您的链接需要位于同一物理设备上。