La creación de archivos o directorios temporales es una tarea común que realizan muchos usuarios de la línea de comandos de Linux. Pero, ¿sabe que existe una herramienta de línea de comandos dedicada, llamada mktemp, que le permite hacer esto?
En este tutorial, discutiremos los conceptos básicos del comando mktemp usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se han probado en una máquina con Ubuntu 20.04 LTS y en Debian 10.
Comando Linux mktemp
El comando mktemp en Linux permite a los usuarios crear un archivo o directorio temporal. La siguiente es su sintaxis:
mktemp [OPTION]... [TEMPLATE]
Y así es como lo explica la página de manual de la herramienta:
Create a temporary file or directory, safely, and print its name. TEM?
PLATE must contain at least 3 consecutive 'X's in last component. If
TEMPLATE is not specified, use tmp.XXXXXXXXXX, and --tmpdir is implied.
Files are created u+rw, and directories u+rwx, minus umask restric?
tions.
Los siguientes son algunos ejemplos con estilo de preguntas y respuestas que le darán una buena idea de cómo funciona el comando mktemp.
P1. ¿Cómo crear un archivo temporal usando mktemp?
Sencillo. Simplemente ejecute 'mktemp' sin ninguna opción. Verá que se creará un archivo temporal en la carpeta /tmp/.
mktemp
Por ejemplo, en mi caso, se produjo el siguiente resultado:
/tmp/tmp.Ko6d1aX84B
P2. ¿Cómo crear un directorio temporal usando mktemp?
Esto se puede hacer usando la opción de línea de comando -d.
mktemp -d
Por ejemplo, en mi caso, se produjo el siguiente resultado:
/tmp/tmp.Y8pySTB9ml
Como puede ver, el nombre no refleja el hecho de que es un directorio, pero en realidad lo es.
P3. ¿Cómo dar un nombre personalizado a su archivo/directorio temporal?
Como ya habrá observado, mktemp da un nombre aleatorio al archivo o directorio temporal que crea. Sin embargo, si lo desea, puede proporcionar un nombre personalizado.
La herramienta ofrece una plantilla que puede utilizar. Todo lo que tiene que hacer es proporcionar un nombre, seguido de tres o más X a continuación. Estas X se reemplazan por mktemp con caracteres aleatorios para que el nombre final del archivo o directorio resulte ser único.
Por ejemplo, ejecuté el siguiente comando:
mktemp tempfileXXX
Y se produjo el siguiente archivo:
tempfileEgh
Tenga en cuenta que los archivos producidos de esta manera se ubican en el directorio de trabajo actual, en lugar del directorio /tmp/ (que es el comportamiento predeterminado).
P4. ¿Cómo agregar un sufijo al final del nombre del archivo/directorio?
En la sección anterior, discutimos cómo tener un nombre personalizado al usar mktemp. Pero de esa manera, puede tener solo la parte inicial del nombre como desee. ¿Qué pasa si también quieres un sufijo de tu elección?
Te alegrará saber que esto también es posible. Solo tienes que usar la opción --suffix. El siguiente es un ejemplo:
mktemp tempfileXXX --suffix=HTF
Y aquí está el nombre del archivo producido por el comando mencionado anteriormente:
tempfilecVkHTF
Para que pueda ver que el sufijo que proporcionó se ha agregado al nombre del archivo.
P5. ¿Cómo realizar una ejecución en seco con mktemp?
Si solo desea que mktemp muestre un nombre y no cree un archivo/directorio, puede hacerlo usando la opción de línea de comandos -u.
mktemp -u
Conclusión
Dependiendo del tipo de trabajo que realice en la línea de comandos de Linux, el comando mktemp puede resultar una herramienta útil para ahorrar tiempo. Aquí, en este tutorial, hemos discutido varias opciones de línea de comando que ofrece la herramienta. Para obtener más información, diríjase a su página de manual.