Crear directorios desde la consola con el comando mkdir

Para crear un directorio en GNU/Linux a través de la línea de comandos, usaremos el comando mkdir.

Su uso más sencillo, además del más habitual, es crear un directorio:

mkdir directorio

Si queremos crear más de un directorio, podemos crear tantos directorios como le indiquemos en los parámetros:

mkdir dir1 dir2 dir3

Directorios existentes

 

En caso de que intentemos crear uno o más directorios ya existentes, nos dará un error por cada directorio existente:

mkdir: no se puede crear el directorio «dir1»: El archivo ya existe
mkdir: no se puede crear el directorio «dir2»: El archivo ya existe

Podemos evitar esos errores comprobando previamente si el directorio a crear ya existe con:

[ -d dir1 ] || mkdir dir1

Si la condición es verdadera significa que el directorio existe, por lo que no ejecutará el siguiente comando.

Si no existiera, [ -d dir1 ] devolvería falso, por lo que no ejecutaría la instrucción descrita tras la doble tubería, en este caso, mkdir dir1.

Crear directorios y subdirectorios

Si queremos crear un subdirectorio dentro de un directorio existente, escribiremos:

mkdir directorio/subdirectorio

Pero si intentamos crear un directorio nuevo con un subdirectorio, nos dará error:

mkdir directorio_nuevo/subdirectorio

Devolverá:

mkdir: no se puede crear el directorio «directorio_nuevo/subdirectorio»: No existe el archivo o el directorio

Y, obviamente, no lo creará.

Para ello, tenemos el modificador -p, de parents:

mkdir -p directorio_nuevo/subdirectorio

Que creará el directorio «directorio_nuevo» y, dentro de ese directorio, el subdirectorio «subdirectorio».

Uniendo comprobaciones y creación de directorio padre

Podemos evitar errores a la hora de crear directorios y subdirectorios haciendo primero una comprobación, a ver si existe el directorio que queremos crear, e indicar la estructura a crear con el modificador -p:

[ -d nuevo_directorio/nuevo_subdirectorio ] || mkdir -p nuevo_directorio/nuevo_subdirectorio

Deja una respuesta

Tu dirección de correo electrónico no será publicada.