Comando mkdir de Linux: Creación de Directorios

LinuxBeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, exploraremos el comando mkdir en Linux, una herramienta fundamental para crear y organizar directorios. Simularemos el proceso de configuración de un "jardín digital" (un sistema personal de gestión del conocimiento) para aprender cómo utilizar mkdir de manera efectiva en diversos escenarios. Esta experiencia práctica te ayudará a comprender la creación de directorios, las estructuras anidadas y la configuración de permisos en Linux, incluso si eres completamente nuevo en la línea de comandos.

Esta es una Guía de Laboratorio (Guided Lab), que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 84%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Creación de la Raíz de tu Jardín Digital

Comencemos creando el directorio raíz para tu jardín digital.

Primero, abre tu terminal. Verás un indicador (prompt) similar a este:

labex:project/$

Esto indica que te encuentras en el directorio /home/labex/project, el cual es perfecto para nuestra práctica.

Ahora, vamos a crear un directorio llamado digital_garden:

mkdir digital_garden

Aquí, mkdir significa "make directory" (crear directorio). Este comando genera una nueva carpeta llamada digital_garden en tu ubicación actual.

Para verificar que el directorio se ha creado correctamente, utilizaremos el comando ls, que enumera el contenido de un directorio:

ls

Deberías ver digital_garden en la salida. Si no aparece, ¡no te preocupes! Simplemente intenta ejecutar el comando mkdir de nuevo.

Añadiendo Secciones Principales

En un jardín digital, es recomendable organizar tus pensamientos en categorías principales. Vamos a crear directorios para diferentes tipos de contenido.

Crearemos tres directorios dentro de nuestro digital_garden: 'notes', 'projects' y 'resources'. Puedes hacerlo con tres comandos por separado:

mkdir ~/project/digital_garden/notes
mkdir ~/project/digital_garden/projects
mkdir ~/project/digital_garden/resources

En este caso, ~/project/digital_garden/ es la ruta completa hacia nuestro jardín digital. El símbolo ~ es un atajo que representa tu "directorio personal" (home).

Para visualizar la nueva estructura, usa el comando ls indicando la ruta de tu jardín digital:

ls ~/project/digital_garden

Deberías ver listados los tres nuevos directorios: notes, projects y resources.

Por si tienes curiosidad sobre para qué podrían servir estos directorios:

  • notes podría almacenar pensamientos rápidos o reflexiones diarias.
  • projects podría contener trabajos o estudios a largo plazo.
  • resources podría servir para guardar materiales de referencia.

Creación de Directorios Anidados

A menudo necesitarás crear directorios dentro de otros directorios, generando una estructura anidada. La opción -p te permite crear los directorios padres según sea necesario, lo cual es muy útil para estructuras profundas.

Vamos a crear una estructura anidada para un hipotético proyecto de aplicación web:

mkdir -p ~/project/digital_garden/projects/web_app/src/components

Este comando realiza varias acciones a la vez:

  • Crea una carpeta web_app dentro de projects.
  • Dentro de web_app, crea una carpeta src.
  • Finalmente, dentro de src, crea una carpeta components.

La opción -p (piensa en "parents" o padres) le indica a mkdir que cree cualquier directorio intermedio que falte en la ruta. Sin -p, recibirías un error si alguna parte de la ruta no existiera previamente.

Para ver esta nueva estructura, usa el comando ls con la opción -R, que muestra el contenido de forma recursiva:

ls -R ~/project/digital_garden/projects/web_app

Deberías ver desplegada la estructura de directorios anidados.

Configuración de Permisos de Directorio

Al crear directorios, puedes definir permisos específicos. Esto es útil para controlar quién puede acceder, modificar o ejecutar archivos dentro de la carpeta.

Vamos a crear un directorio llamado 'private' con permisos restringidos:

mkdir -m 700 ~/project/digital_garden/private

Esto es lo que sucede:

  • mkdir crea el directorio.
  • -m 700 establece los permisos.
    • 7: Lectura, escritura y ejecución para el propietario.
    • 0: Sin permisos para el grupo.
    • 0: Sin permisos para otros.

En otras palabras, solo tú (el propietario) puedes acceder a este directorio.

Para verificar los permisos, utiliza:

ls -ld ~/project/digital_garden/private

La salida debería verse así:

drwx------ 2 labex labex 6 Aug  7 18:40 /home/labex/project/digital_garden/private

Aquí, drwx------ significa:

  • d: Es un directorio.
  • rwx: Tú (el propietario) tienes permisos de lectura (read), escritura (write) y ejecución (execute).
  • ------: Ni tu grupo ni otros usuarios tienen permiso alguno.

Uso del Modo Detallado (Verbose)

El modo detallado puede ser de gran ayuda al crear múltiples directorios, ya que proporciona una confirmación por cada carpeta creada. Esto es especialmente útil cuando generas muchos directorios a la vez y quieres asegurarte de que todos se crearon correctamente.

Vamos a crear varios directorios usando el modo detallado:

mkdir -v ~/project/digital_garden/resources/books ~/project/digital_garden/resources/articles ~/project/digital_garden/resources/videos

La opción -v significa "verbose". Le indica a mkdir que imprima un mensaje por cada directorio que cree.

Deberías ver una salida similar a esta:

mkdir: created directory '/home/labex/project/digital_garden/resources/books'
mkdir: created directory '/home/labex/project/digital_garden/resources/articles'
mkdir: created directory '/home/labex/project/digital_garden/resources/videos'

Esta retroalimentación es muy valiosa en scripts complejos o durante la resolución de problemas.

Combinación de Opciones

Puedes combinar múltiples opciones con mkdir. Esto te permite crear estructuras complejas con permisos específicos y salida detallada en un solo comando.

Vamos a crear una estructura anidada para un hipotético proyecto de investigación con permisos restringidos:

mkdir -pvm 750 ~/project/digital_garden/projects/research_paper/drafts ~/project/digital_garden/projects/research_paper/references

Desglosemos este comando:

  • -p: Crea los directorios padres si es necesario.
  • -v: Modo detallado, imprime un mensaje por cada directorio creado.
  • -m 750: Establece permisos (propietario: acceso total; grupo: lectura y ejecución; otros: sin acceso).

Este comando crea dos directorios (drafts y references) dentro de research_paper, el cual a su vez se crea dentro de projects si aún no existe.

Para verificar la estructura y los permisos:

ls -lR ~/project/digital_garden/projects/research_paper

Deberías ver los directorios anidados con los permisos especificados (drwxr-x---).

Visualización de tu Jardín Digital con el comando tree

Ahora que hemos creado la estructura de nuestro jardín digital, utilizaremos el comando tree para visualizarla. El comando tree muestra la estructura de directorios en un formato de árbol, lo cual es informativo y visualmente claro.

Usemos tree para ver nuestra creación:

tree ~/project/digital_garden

Deberías ver una salida similar a esta:

/home/labex/project/digital_garden
|-- notes
|-- private
|-- projects
|   |-- research_paper
|   |   |-- drafts
|   |   `-- references
|   `-- web_app
|       `-- src
|           `-- components
`-- resources
    |-- articles
    |-- books
    `-- videos

13 directories, 0 files

Esta estructura de árbol nos ofrece una visión general clara de nuestro jardín digital. Podemos ver todos los directorios que hemos creado, incluyendo las estructuras anidadas.

Si deseas ver más detalles, incluyendo los permisos que configuramos, puedes usar la opción -p con tree:

tree -p ~/project/digital_garden

Esto mostrará los permisos de cada directorio, de esta forma:

[drwxrwxr-x]  /home/labex/project/digital_garden
|-- [drwxrwxr-x]  notes
|-- [drwx------]  private
|-- [drwxrwxr-x]  projects
|   |-- [drwxrwxr-x]  research_paper
|   |   |-- [drwxr-x---]  drafts
|   |   `-- [drwxr-x---]  references
|   `-- [drwxrwxr-x]  web_app
|       `-- [drwxrwxr-x]  src
|           `-- [drwxrwxr-x]  components
`-- [drwxrwxr-x]  resources
    |-- [drwxrwxr-x]  articles
    |-- [drwxrwxr-x]  books
    `-- [drwxrwxr-x]  videos

13 directories, 0 files

Esta representación visual es una excelente manera de verificar que hemos construido todo tal como lo planeamos, con la estructura y los permisos correctos.

Este paso concluye de forma satisfactoria nuestra práctica, permitiéndonos apreciar toda la estructura que hemos edificado. El comando tree no solo es útil para este ejercicio, sino que es una herramienta valiosa para navegar y comprender sistemas de archivos en tus futuras tareas en Linux.

Resumen

En esta práctica de laboratorio, exploramos la versatilidad del comando mkdir en Linux simulando la creación de un jardín digital. Aprendimos a:

  1. Crear directorios individuales.
  2. Crear múltiples directorios simultáneamente.
  3. Crear estructuras de directorios anidados mediante la opción -p.
  4. Establecer permisos específicos al crear directorios con la opción -m.
  5. Utilizar el modo detallado -v para obtener confirmaciones paso a paso.

También vimos cómo estas opciones pueden combinarse para realizar operaciones más complejas.

Aunque no los cubrimos en nuestros ejercicios, mkdir tiene algunos parámetros adicionales que pueden ser útiles en situaciones específicas:

  • -Z: Establece el contexto de seguridad SELinux de cada directorio creado al tipo por defecto.
  • --context[=CTX]: Similar a -Z, o si se especifica CTX, establece el contexto de seguridad SELinux o SMACK a CTX.
  • --help: Muestra el mensaje de ayuda y sale.
  • --version: Muestra la información de la versión y sale.

Estas habilidades son fundamentales para una organización eficiente del sistema de archivos en entornos Linux. Recuerda que, aunque nos enfocamos en el escenario de un jardín digital, estas técnicas se aplican a cualquier situación en la que necesites gestionar estructuras de directorios. A medida que avances en tu camino con Linux, descubrirás que mkdir es una herramienta indispensable para organizar tus archivos y proyectos.

Recursos