是否可以覆盖 mktemp 创建的文件?

是否可以覆盖 mktemp 创建的文件?

我想将文件复制到临时位置。

我想确保我没有覆盖任何重要的内容,并且我知道脚本运行时文件的位置。

#!/bin/bash

myfile="$(mktemp)"
cp "source" "$myfile"

# work with $myfile

rm "$myfile"

这看起来可以吗?我有什么遗漏的吗? (权限等?)
我对覆盖该文件有一种不好的预感。

答案1

从手册页

安全地创建临时文件或目录,并打印其名称。

您可以添加检查来判断是否mktemp成功。

myfile="$(mktemp)"
if test $? != 0; then
  exit 1
fi

如果mktemp成功,则它创建了一个以前不存在的文件。您可以安全地覆盖该文件,这就是使用mktemp.权限设置为u+rw,如手册中所述。

相关内容