O que eles queriam dizer com "inseguro" acima é o seguinte. Digamos que você tenha este cenário:
- Você executa
mktemp -u
- Imprime um nome, digamos
/tmp/tmp.njxOsokU9u
- Você salva esse nome em algum lugar, presumivelmente em uma variável bash (por exemplo,
tmp
) - Seu script faz algum trabalho não relacionado a esse arquivo
- Seu script tenta usar o arquivo temporário (
echo hello > $tmp
)
Nada de errado, sim? Aqui está um cenário semelhante:
- Você executa
mktemp -u
- Imprime um nome, digamos
/tmp/tmp.njxOsokU9u
- Você salva esse nome em algum lugar, presumivelmente em uma variável bash (por exemplo,
tmp
) - Seu script faz algum trabalho não relacionado a esse arquivo
- Algum outro processo não relacionado ao seu script cria o arquivo com o mesmo nome (por exemplo,
/tmp/tmp.njxOsokU9u
) - Seu script tenta usar o arquivo temporário (
echo hello > $tmp
)
Agora, seu script e o outro processo podem estar gravando no mesmo arquivo, o que provavelmente não terminará bem. É por isso que é marcado como inseguro.