如何使用Ruby在/ tmp中直接创建随机唯一文件?

时间:2019-05-17 23:21:29

标签: ruby bash

我正在编写一个应用程序,该应用程序将日志文件创建并放置在 / tmp 中,然后将该日志文件移动到另一个目录。不幸的是,我在实现过程中遇到了一些问题,我想使该日志文件更加独特。

我碰到了mktemp,它会自动在 / tmp 中创建一个文件。完美,正是我所需要的!不幸的是,我似乎无法使其在Ruby中工作。我尝试了以下方法但没有成功:

def temporary_logfile
    @temporary_logfile = `mktemp "#{File.basename($PROGRAM_NAME)}_#{Time.now.strftime('%Y%m%dT%H%M%S')}.logXXXX"`
end

我希望在 / tmp 中看到我的日志文件,但不幸的是没有任何反应。我想知道我做错了什么吗?

下一步是使用slice!从日志文件名称中删除mktemp中随机生成的字符,然后将文件移动到其他位置。

1 个答案:

答案 0 :(得分:0)

看看Tempfilehttps://ruby-doc.org/stdlib-2.6.3/libdoc/tempfile/rdoc/Tempfile.html

file = Tempfile.new('foo')
begin
   # ...do something with file...
ensure
   file.close
   file.unlink   # deletes the temp file
end

示例直接来自文档。