【发布时间】:2012-06-14 12:34:14
【问题描述】:
有没有客观上更好的方法在 bash 脚本中创建临时文件?
我通常只是将它们命名为我想到的任何名称,例如 tempfile-123,因为它会在脚本结束时被删除。除了覆盖当前文件夹中可能的 tempfile-123 之外,这样做有什么缺点吗?或者以更谨慎的方式创建临时文件有什么好处?
【问题讨论】:
-
不要使用临时文件。请改用临时目录。并且不要使用 mktemp。在这里查看原因:codeproject.com/Articles/15956/…
-
@ceving 那篇文章是完全错误的,至少在应用于 shell 命令 mktemp 时(与 mktemp 库调用相反)。由于 mktemp 使用限制性 umask 创建文件本身,因此仅当攻击者在与被攻击者相同的帐户下操作时,给定的攻击才有效……在这种情况下,游戏已经丢失。有关 shell 脚本世界的最佳实践,请参阅 mywiki.wooledge.org/BashFAQ/062
-
你也可以在有
tempfile(1)的系统上使用它。