Estoy escribiendo un script de shell y necesito crear un archivo temporal con una cierta extensión.¿Cómo puedo crear un archivo temporal con una extensión específica en bash?
He intentado
tempname=`basename $0`
TMPPS=`mktemp /tmp/${tempname}.XXXXXX.ps` || exit 1
y
tempname=`basename $0`
TMPPS=`mktemp -t ${tempname}` || exit 1
ni el trabajo, ya que el primero crea un nombre de archivo con un literal "XXXXXX" y el segundo no da una opción para una extensión.
Necesito la extensión para que la vista previa no se niegue a abrir el archivo.
Editar: Terminé yendo con una combinación de pid y mktemp en lo que espero es segura:
tempname=`basename $0`
TMPTMP=`mktemp -t ${tempname}` || exit 1
TMPPS="$TMPTMP.$$.ps"
mv $TMPTMP $TMPPS || exit 1
Es vulnerable a un ataque de denegación de servicio, pero no creo que nada más severo.
su información: * * BSD mktemp en Mac OS X sí tiene esta opción, al menos no en 10.11. – Jokester
@ El nombre de Jokester no es mentira. Y con eso me refiero a que OSX/macOS * no * tiene '--suffix', todavía a partir de 10.12. –
@CharlieGorichanaz Mi mal. Supongo que estaba tratando de escribir "no tengo esta opción", porque todavía puedo recordar la depuración de mi script en OSX para esta diferencia :(. – Jokester