Na prática, /tmp é praticamente garantido de existir. No entanto, mesmo que exista, isso não significa que você deve colocar arquivos temporários lá.
A convenção padrão é usar a variável de ambiente TMPDIR . Se existir, aponta para um diretório para arquivos temporários. Se não existir, coloque arquivos temporários em /tmp .
Em um script de shell, você pode usar "${TMPDIR:-/tmp}" como o local do arquivo temporário: isso se expande para o valor de TMPDIR se for set¹ e para /tmp caso contrário. Ou você pode definir TMPDIR condicionalmente caso não seja definido, com o comando
: "${TMPDIR:=/tmp}"
e, em seguida, crie arquivos temporários dentro de "$TMPDIR" .
Observe que qualquer aplicativo pode criar arquivos em /tmp ou $TMPDIR . Além disso, esse diretório pode ser compartilhado entre usuários, portanto, você precisa ter cuidado com as permissões ao criar um arquivo. Muitos sistemas (Linux, * BSD) têm um comando mktemp que cria arquivos com segurança no diretório correto. Geralmente é uma boa idéia usar mktemp para criar arquivos e diretórios temporários - especialmente a partir de um shell script, onde é impossível criar um arquivo com segurança em um diretório compartilhado devido à possibilidade de ataques de links simbólicos ( mkdir é bom se você manipular erros corretamente).
¹ e não-vazio - se a variável estiver vazia, então não é utilizável como é de qualquer maneira, e geralmente é uma boa ideia tratar variáveis vazias ou não definidas da mesma forma se elas supostamente contiverem um nome de arquivo.