Latinoamérica
de.novatoanovato@gmail.com

Comando -mkdir-

Dedicado al nuevo usuario de software libre

Comando -mkdir-

Comando mkdir

El comando mkdir es un programa o instrucción disponible en los sistemas operativos del tipo UNIX (como GNU/Linux), DOS, OS/2 y Windows. Esta herramienta es usada para crear un nuevo subdirectorio o carpeta del sistema de archivos. El nombre mkdir tiene su origen en las palabras make subdirectory que significan: crear subdirectorio en inglés.

Objetivos de éste artículo

El objetivo de éste artículo es que aprendas a utilizar el comando mkdir en GNU/Linux, dar a conocer su sintaxis y exponer con ejemplos prácticos cómo aplicar sus parámetros y utilizar los tipos de rutas disponibles para establecer los caminos desde distintas ubicaciones para la creación de carpetas.

Sintaxis

El comando mkdir se corresponde con la siguiente sintaxis.

mkdir [Parámetros] [Nombre del directorio] [Ruta]

Opciones del comando mkdir

Esta herramienta de interfaz de linea de comandos, es capaz de crear directorios por medio de instrucciones simples. Así mismo, su sintaxis nos provee de algunos parámetros para ir un poco mas allá de crear solamente un directorio.

Antes de comenzar con el desarrollo de este artículo, me gustaría propones un directorio sobre el que vamos a trabajar. Éste, se encontrara ubicado en el directorio del usuario, que en mi caso sería: /home/cristian, nombrado como TioNovato. Estando dentro del directorio en cuestión, visualizamos su ruta absoluta haciendo uso del comando pwd.

Como podemos observar, la ruta es: /home/cristian/TioNovato. Todos los ejemplos que acuñaremos, serán dentro de este directorio.

Crear un directorio

La forma mas simple de crear un directorio con esta herramienta es ejecutar mkdir y el nombre-del-directorio. Aunque! necesitamos tener en cuenta algunas cosas.

La primera: donde se va a crear el nuevo directorio. Y la segunda: que sucede si necesitamos que el nombre del directorio sea compuesto, como por ejemplo: Nuevo directorio.

En el primer caso, la respuesta es un tanto simple, la carpeta se creará sobre el directorio donde estamos posicionados con el prompt, siempre y cuando no especifiquemos nosotros una ruta como parámetro. Pero eso lo veremos mas adelante. En el segundo caso, podríamos encontrarnos con dos posibilidades. Que necesitemos que el nombre del directorio sea simple (no tenga espacios) o que necesitemos crear un directorio con nombre compuesto (que tenga espacios entre cadenas de caracteres admitidas). Analicemos ambos por separado.

Nota: No olvidar que GNU/Linux es Case Sensitive, osea, reconoce mayúsculas y minúsculas.

mkdir de un nombre simple

En caso que necesitemos crear un directorio de nombre simple (que no tenga espacios) nos bastará con ejecutar el comando mkdir seguido del nombre del nuevo directorio por crear. Sabiendo que estamos ubicados en el directorio TioNovato, creemos la carpeta NuevoDir.

mkdir NuevoDir

Si listamos con el comando ls.

Veremos que el directorio se creo tal cual como lo indicamos.

mkdir de un nombre compuesto

Si nos encontramos en una situación en la que necesitemos crear un directorio con un nombre compuesto (nombre con cadena de caracteres admitidas separadas por espacios), sera posible ejecutando el comando mkdir donde como parámetro indicaremos el nombre del directorio por crear encerrado entre comillas dobles. Sabiendo que estamos ubicados en el directorio TioNovato, creemos la carpeta «Nueva Carpeta».

mkdir "Nueva Carpeta"

Si listamos con el comando ls.

También podríamos hacer uso de comillas simples y obtendríamos el mismo resultado, creemos el directorio ‘Carpeta Nueva 0’.

Si listamos con el comando ls.

Podremos observar ya sea con comillas dobles o simples ambos directorios se crearon como lo indicamos, con nombre compuesto. Pero…  ¿Qué hubiese pasado si nos olvidamos las comillas dobles? Veamoslo a continuación.

Crear varios directorios simultáneamente

El comando mkdir nos permite crear varios directorios de forma simultanea. Por defecto, y a menos que indiquemos una ruta como parámetro, estos se crearan en el directorio donde nos encontremos posicionados con el prompt. La sintaxis para ello es la siguiente: mkdir [directorio] [directorio 0] [directorio 1]. Donde mkdir INTERPRETA los espacios entre las cadenas ingresadas para diferencias los directorios por crear. Es por eso que los nombres compuestos para nuevas carpetas deben ser indicado con algún tipo de comillas, de no hacerlo, mkdir interpretará que son tantos directorios como cadenas separadas por espacio ingresemos. Sino quedo claro, no te preocupes, veamos algunos ejemplos prácticos.

Primero que nada nos moveremos del directorio TioNovato al directorio creado en uno de los ejemplos anteriores NuevoDir haciendo uso del comando cd.

cd ./NuevoDir

Y corroboramos donde nos encontramos con el comando con el comando pwd.

También ejecutaremos el comando ls para verificar que el directorio se encuentra vació.

Antes que nada, ¿Que tipo de ruta utilizamos en este ejemplo para movernos de directorio?. En nuestra posición (la del prompt), crearemos las carpetas dir0, dir1 y dir2.

mkdir dir0 dir1 dir2

Ejecutemos el comando ls para listar los directorios creados.

Como observamos, la separación por espacio entre las cadenas de caracteres dir0, dir1 y dir2 se interpretan por mkdir como nombres de diferentes directorios a crear. Como resultado fueron creadas de forma simultanea las tres carpetas tal cual se observa en la imagen.

¿Qué pasaría si quisiera crear los directorios Nuevo Directorio0, Nuevo Directorio1 y Nuevo Directorio2 de forma simultanea? Entendiendo que estos tienen nombres compuestos, encerraremos los nombres en comillas para que mkdir los interprete como tales.

mkdir "Nuevo Directorio0" "Nuevo Directorio1" "Nuevo Directorio2"

Ejecutando el comando ls listemos los directorios creados.

Como vemos, los tres directorios se encuentran creados. De no haber usado comillas en la ultima ejecución, ¿Cuando directorios hubiéramos creado?.

Crear un directorio y solicitar información del proceso

La sintaxis del comando mkdir nos provee del parámetro –v (del ingles verbose) para obtener un mensaje por directorio creado. De esta forma podremos corroborar que los directorios fuera creados según nuestras intenciones uno a uno, siendo como una especie de control. Cabe señalar que por defecto, cuando un directorio no pude ser creado, obtendremos un mensaje por la salida estándar comunicándonoslo.

Para utilizar este recurso, ejemplificaremos con la creación de 6 directorios a los que nombraremos como: Carp0 hasta Carp5. Para ello simplemente ejecutamos:

mkdir -v Carp0 Carp1 Carp2 Carp3 Carp4 Carp5

Como podemos observar, mkdir nos informó una a uno sobre los directorios creados. Si listamos con el comando ls, veremos las carpetas creadas.

Crear un directorio y establecer permisos

Una de las ventajas de crear directorio con el comando mkdir, es la de poder asignar permisos a las nuevas carpetas en la misma linea de ejecución en la que la estamos creando. Si quieres saber mas sobre permisos de archivos y directorio te dejo un articulo sobre el comando chmod para que puede aprender o refrescar sobre el tema, es importante tener esto en mente debido a que mkdir se basa en la sintaxis de chmod para asignar permisos.

Contexto: Nos encontramos posicionados en la carpeta TioNovato, que para este caso se encuentra vacía. Revisemos su contenido con el comando ls.

El parámetro que nos brinda la sintaxis de este comando para asignar permisos al momento de crear un directorio es –m, con el podemos optar por los permisos de lectura, escritura y ejecución para usuarios, grupos de usuarios y otros usuarios. Pero antes, veamos cuales permisos son asignados por defecto. Creemos el directorio prueba01.

mkdir prueba01

Listemos con el comando ls -l, para visualizar los permisos.

Y vemos que por defecto, cuando creamos un directorio con mkdir, los permisos asignados son:

  • Usuario: Lectura, escritura y ejecución (rwx).
  • Grupos de usuarios: Lectura y ejecución (rx).
  • Otros usuarios: Ejecución (x).

La sintaxis para asignar permisos es: mkdir u=(permisos),g=(permisos),o=(permisos) [Nombre del directorio]

Para ejemplificar, crearemos el directorio prueba02 en TioNovato, y daremos permisos de lectura, escritura y ejecución al usuario y solo de ejecución a grupos de usuario y otros usuarios.

mkdir -m u=rwx,g=x,o=x prueba02

Si listamos con el comando ls -l.

Veremos que los permisos de prueba02 son los que asignamos en la ejecución. Y que en comparacion con los del directorio prueba01, estos son:

  • Usuario: Lectura, escritura y ejecución (rwx).
  • Grupos de usuarios: Ejecución (x).
  • Otros usuarios: Ejecución (x).

Uso de rutas para crear directorios

Uno de los parámetro que son permitidos en la sintaxis de mkdir son las rutas de direcciones. Estas se utilizan para indicar desde desde la posición de nuestro prompt, una distinta donde crear el nuevo directorio. Usando el tipo de ruta o rutas que mas se aduce a nuestras necesidades. Veamos un ejemplo para cada tipo.

Crear un directorio utilizando rutas relativas

Veamos un ejemplo simple de como crear un directorio haciendo uso de rutas relativas. Para ello nos posicionamos en el directorio TioNovato, creado para el desarrollo de esta entrada, quien contiene los siguientes directorio.

Nos dispondremos a crear una nueva carpeta dentro de dir2 desde nuestra posición en TioNovato. Llamaremos a este nuevo directorio Rrelativa indicando la ruta ./NuevoDir/dir2.

mkdir ./NuevoDir/dir2/Rrelativa

Si listamos el contenido de dir2, también utilizando una ruta relativa desde nuestra posición en TioNovato, veremos que el directorio Rrelativa fue creado como lo indicamos.

ls -l ./NuevoDir/dir2

Crear un directorio utilizando rutas absolutas

Para este ejemplo vamos a crear un directorio con mkdir desde nuestra posición en TioNovato, y sin movernos de ella, haciendo uso de una ruta absoluta apuntando a el mismo directorio, dir2, del ejemplo anterior. Nombraremos al nuevo directorio como Rabsoluta.

mkdir /home/cristian/TioNovato/NuevoDir/dir2/Rabsoluta

Si listamos el contenido de dir2 utilizando el mismo tipo de ruta, veremos que el directorio Rabsoluta fue creado con éxito tal cual lo indicamos.

ls -l /home/cristian/TioNovato/NuevoDir/dir2

Crear un directorio y su o sus directorios padre

Un directorio padre, es aquel que se encuentre un nivel superior en la estructura de directorios (en una sucesión de directorios anidados) y respecto de otro directorio (contenido/s en este) que se lo conocen como directorios hijos. Habiendo explicado esto, sigamos.

En algunas ocasiones, podríamos necesitar crear un directorios junto a una sucesión de directorios padres inexistentes. ¿Cómo sería esto?, veamos.

Para este ejemplo voy vacié el contenido el directorio TioNovato, dejándolo limpio.

Supongamos que queremos, con mkdir, crear en TioNovato el directorio hijo01, pero! que este de dentro del directorio padre01. Osea TioNovato/padre01/hijo01. Sabiendo que ninguno de estos directorios existen dentro de TioNovato, veamos que pasa.

mkdir padre01/hijo01

Como podemos observar, no será posible crear el directorio hijo01 debido a que padre01 no existe, aunque lo que en realidad esta pasando es que mkdir interpreta esto como una ruta no valida. Pero tranquilos! Si de verdad esta un nuestros planes crear ambos directorio y lo que estamos pasando no es una ruta invalida, sino una sucesión de directorio para crear, el comando mkdir en su sintaxis dispone del parámetro -p para estos casos. Ejecutemos la misma linea añadiendo el parámetro en cuestión.

mkdir -p padre01/hijo01

La ejecución fue tomada con éxito. Pero ¿Cómo se crearon los directorio?. Veamoslo con el comando tree.

tree

Observamos que ambos directorio fueron creados sucesivamente.

Espero sea de utilidad.
Saludos, Cristian.

 

Deja una respuesta

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

14 − 4 =