Linux: crear una carpeta sólo si no existe

Linux crear directorio bash

En Linux, el comando utilizado para crear una nueva carpeta se llama "mkdir". Crear un directorio es muy sencillo en sí mismo, pero ¿cómo se crea una carpeta si no existe? Esa es la pregunta que vamos a responder.

Probablemente ya hayas utilizado el comando mkdir si usas Linux en la línea de comandos para crear una carpeta, sea cual sea la distribución que estés acostumbrado a utilizar. Por cierto, este comando también funciona en Windows.

1. La solución "mkdir -p

Para crear una carpeta, por ejemplo llamada "carpeta" (podría haberlo hecho mejor en términos de imaginación), utilice este comando en Linux :

mkdir carpeta

Este comando crea el directorio "carpeta" en la ubicación actual. Si vuelvo a ejecutar este comando, obtengo un error porque la carpeta ya existe:

mkdir: incapaz de crear el directorio "carpeta": El archivo existe

Para evitar este error, existe una solución: la opción -p del comando mkdir. Si el directorio ya existe, no se devolverá un error (lo que puede ser útil en algunos scripts) y si el directorio padre tampoco existe, también se creará. Esta información es importante.

Entonces, si corro :

mkdir carpeta -p

Que también se puede escribir así (con la opción antes del nombre de la carpeta) :

mkdir -p carpeta

El comando no devolverá un error aunque la carpeta ya exista. ¿Cómo es posible? Simplemente porque con esta opción, el comando mkdir se toma la molestia de comprobar si la carpeta ya existe o no.

Aquí tienes una vista previa de la ayuda del comando "mkdir" donde puedes ver claramente la presencia de la opción "-p" y la descripción es clara sobre el uso de esta opción.

Crear una carpeta si no existe Linux

Ahora, si ejecuto este comando :

mkdir /home/tutobox/data/carpeta -p

El comando creará el archivo " datos " porque no existe, y también creará el " archivo" . Sin el " -p "se devolvería un error porque el archivo datos "ha desaparecido.

2. Solución 2: comprobar si existe una carpeta en bash

Para comprobar si una carpeta existe o no, puede utilizar un script Bashque permite realizar otras acciones. Si la carpeta ya existe, podremos realizar una acción adicional, mientras que si no existe, la crearemos.

En el siguiente script, la variable FILE se utiliza para determinar la ruta completa a la carpeta que se va a comprobar. A continuación, se utiliza una condición "if/else" para indicar la acción a realizar si existe y la acción a realizar si no existe. Si no existe, se creará con mkdir. En ambos casos, se escribe un mensaje informativo en el Terminal.

#!/bin/bash
DOSSIER=/home/tutobox/dossier

if [ -d "$DOSSIER" ]; then
    echo "La carpeta existe ($DOSSIER)"
else
    echo "La carpeta no existe ($DOSSIER). Se creará".
    mkdir $DOSSIER
fi

Cree el script utilizando el editor de texto "nano" u otro editor como "vi", en función de sus preferencias habituales:

nano dossier.sh

Introduzca el código anterior en el archivo de secuencia de comandos "dossier.sh", cambiando la ruta de la carpeta que debe comprobarse y añadiendo cualquier otra acción; a continuación, guarde.

Añade derechos de ejecución al archivo "dossier.sh", de lo contrario no podremos ejecutarlo en la máquina local:

chmod +x dossier.sh

A continuación, ejecute este script para probarlo:

./carpeta.sh

He aquí un ejemplo de retorno en la consola Linux. Por supuesto, si el directorio no existe, el mensaje será diferente y el directorio será creado por el script.

Después de leer este artículo en la caja de tutoriales, ya sabes cómo utilizar "mkdir -p" y cómo comprobar la existencia de un directorio con un script Bash. Depende de ti elegir el método que prefieras utilizar en función de tus necesidades.

Recursos :

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *