当我创建临时文件/目录时,何时删除它?

时间:2016-09-06 10:01:37

标签: linux julia temporary-files

Julia包含number of methods用于制作临时文件和目录。

我正在大量使用它们(和/dev/shm),用真正想要使用实际文件的库(JLD / HDF5和OpenStack Swift)进行推断。

我一直认为当他们指向那里的指针的终结者被调用时,他们会被删除。 但是在退出朱莉娅之后,似乎他们都还在那里。

linux会删除它们吗?

2 个答案:

答案 0 :(得分:5)

如果应用程序自身没有清理,操作系统最终会删除文件。它取决于删除临时文件时的系统设置。例如,它可以在启动或夜间(通过cron作业)或其他方式发生。

请参阅此答案,例如:How is the /tmp directory cleaned up?

答案 1 :(得分:3)

你可能在寻找什么, 令人惊讶的是,他们没有被删除,基于超出范围,作为mktemp的阻止版本。 在documentation you linked

  

mktemp (f :: Function [,parent = tempdir()])

     

将函数f应用于mktemp(parent)的结果,并在完成后删除临时文件。

     

mktempdir (f :: Function [,parent = tempdir()])

     

将函数f应用于mktempdir(parent)的结果,并在完成时删除临时目录。

您可以使用:

mktempdir("/dev/shm") do tdir
    fname = joinpath(tdir, name)
    #Do some things with your new temp filename `fname` in your tempdir `tdir`
end
#the directory referenced by `tdir`, and `fname`, have now been deleted.