我想将文件复制到临时位置。
我想确保我没有覆盖任何重要的内容,并且我知道脚本运行时文件的位置。
#!/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
,如手册中所述。