Está tudo bem sobrescrever um arquivo criado por mktemp?

1

Gostaria de copiar um arquivo para um local temporário.

Gostaria de garantir que não estou sobrescrevendo nada importante e que conheço o local do arquivo enquanto o script está sendo executado.

#!/bin/bash

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

# work with $myfile

rm "$myfile"

Isso parece OK? Há algo que eu esteja perdendo? (Permissões, etc.?)
Eu tenho um mau pressentimento sobre a sobrescrita daquele arquivo.

    
por user 23.08.2018 / 23:01

1 resposta

4

Da página do manual

Create a temporary file or directory, safely, and print its name.

Você pode adicionar uma verificação se mktemp foi bem-sucedido.

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

Se mktemp for bem-sucedido, ele criou um arquivo que não estava presente antes. Você pode sobrescrever com segurança esse arquivo, que é o propósito de usar mktemp . As permissões estão definidas para u+rw , conforme mencionado no manual.

    
por 23.08.2018 / 23:09

Tags