我想在 POSIX shell ( /bin/sh
) 中创建一个临时文件。
我发现mktemp(1)
我的 AIX 机器上不存在它,并且根据mktemp(1) 的便携性如何?,无论如何它都不是那么便携和/或安全。
那么,我应该改用什么?
我想在 POSIX shell ( /bin/sh
) 中创建一个临时文件。
我发现mktemp(1)
我的 AIX 机器上不存在它,并且根据mktemp(1) 的便携性如何?,无论如何它都不是那么便携和/或安全。
那么,我应该改用什么?
为什么不使用/dev/random
?
使用 perl 可能会更整洁,但 od 和 awk 会这样做,例如:
tempfile=XXX-$(od -N4 -tu /dev/random | awk 'NR==1 {print $2} {}')
您没有准确定义“安全”,但其中一个要素可能是自己清理。
trap "rm -f \"$tmpfile\"" 0 1 2 3 15
您可能man 3 signal
可以查看是否有其他信号会导致您的临时文件被擦除。零信号意味着“在干净的出口上”。
从谷歌那里得到便携式 mktemp。我的需求不如 OP 安全,所以我最终只使用了脚本的 PID:
tempx=/tmp/mytemp.$$