是否有客观上更好的方法在 bash 脚本中创建临时文件?
我通常只是将它们命名为我想到的任何东西,例如 tempfile-123,因为它会在脚本结束时被删除。除了覆盖当前文件夹中可能的 tempfile-123 之外,这样做有什么缺点吗?或者以更谨慎的方式创建临时文件有什么好处?
原文由 Strapakowsky 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否有客观上更好的方法在 bash 脚本中创建临时文件?
我通常只是将它们命名为我想到的任何东西,例如 tempfile-123,因为它会在脚本结束时被删除。除了覆盖当前文件夹中可能的 tempfile-123 之外,这样做有什么缺点吗?或者以更谨慎的方式创建临时文件有什么好处?
原文由 Strapakowsky 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答794 阅读✓ 已解决
2 回答3.2k 阅读
mktemp(1)
手册页很好地解释了它:在脚本中,我调用 mktemp 类似
它创建了一个我可以在其中工作的临时目录,并且我可以在其中安全地将实际文件命名为可读且有用的名称。
mktemp
不是标准的,但它确实存在于许多平台上。 “X”通常会被转换成一些随机性,更多的可能会更随机;但是,某些系统(例如,busybox ash)比其他系统更明显地限制了这种随机性顺便说一句,临时文件的安全创建不仅对 shell 脚本很重要。这就是为什么 python 有 tempfile , perl 有 File::Temp , ruby 有 Tempfile 等等……