Eu li o --help
texto mktemp
recentemente (a man
página não estava disponível) e me deparei com isso:
-u, --dry-run do not create anything; merely print a name (unsafe)
Por que isso é "inseguro"? Existe algum motivo específico para isso ser marcado como tal?
O ponto
mktemp
principal é, para citar seu manual, “criar um arquivo ou diretório temporário, com segurança”. Basicamente, em um script, você pode escreverou
e use como quiser, sabendo que o arquivo temporário e o diretório são acessíveis apenas pelo usuário que executa o comando (e root, é claro, na maioria das configurações), e que não são um link simbólico para outra coisa, etc. (Ainda há algumas ressalvas; em particular, você precisa verificar o status de saída e o diretório pai precisa ser seguro para uso. Consulte a documentação para obter detalhes.)
mktemp -u
não dá essas garantias, pois separa a construção do nome do arquivo de seu uso; em um script, você teria que executar ( não faça isso )Entre
mktemp
emkdir
, outro processo pode criar o diretório, com propriedade diferente; ou, no caso de um arquivo, outro processo pode criar o arquivo ou criar um link simbólico em seu lugar...