Comando mkdir de Linux: Creación de Directorios

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el comando mkdir en Linux, una herramienta fundamental para crear y organizar directorios. Simularemos el proceso de configurar un jardín digital (digital garden) - un sistema de gestión de conocimiento personal - para aprender cómo usar eficazmente mkdir en diversos escenarios. Esta experiencia práctica te ayudará a entender 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux/BasicSystemCommandsGroup -.-> linux/tree("Directory Tree Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/tree -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} linux/ls -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} linux/cd -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} linux/pwd -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} linux/mkdir -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} linux/apt -.-> lab-209739{{"Comando mkdir de Linux: Creación de Directorios"}} end

Creando la Raíz de Tu Jardín Digital

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

Primero, abre tu terminal. Verás un indicador que se verá algo así:

labex:project/$

Esto indica que estás en el directorio /home/labex/project, que es perfecto para nuestro laboratorio.

Ahora, creemos un directorio llamado digital_garden:

mkdir digital_garden

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

Para verificar que el directorio se haya creado, usaremos el comando ls, que lista el contenido de un directorio:

ls

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

Añadiendo Secciones Principales

En un jardín digital (digital garden), es posible que desees organizar tus pensamientos en categorías principales. Vamos a crear directorios para diferentes tipos de contenido.

Vamos a crear tres directorios dentro de nuestro digital_garden: 'notes', 'projects' y 'resources'. Puedes hacer esto con tres comandos separados:

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

Aquí, ~/project/digital_garden/ es la ruta completa a nuestro jardín digital. El ~ es un atajo que significa "directorio de inicio" (home directory).

Para ver la nueva estructura, utiliza el comando ls con la ruta a tu jardín digital:

ls ~/project/digital_garden

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

Si te preguntas para qué se podrían usar 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 ser para almacenar materiales de referencia.

Creando Directorios Anidados

A menudo, querrás crear directorios dentro de otros directorios, creando una estructura anidada. La opción -p te permite crear directorios padre 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 (web app):

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

Este comando hace muchas cosas 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 (puedes pensar en "padres") le dice a mkdir que cree cualquier directorio padre que falte en el camino. Sin -p, obtendrías un error si alguna parte de la ruta aún no existiera.

Para ver esta nueva estructura, utiliza 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 la estructura de directorios anidados mostrada.

Configurando Permisos de Directorios

Al crear directorios, puedes establecer permisos específicos. Esto es útil para controlar quién puede acceder, modificar o ejecutar archivos dentro del directorio.

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

mkdir -m 700 ~/project/digital_garden/private

Esto es lo que hace este comando:

  • mkdir crea el directorio.
  • -m 700 establece los permisos:
    • 7: Lectura, escritura y ejecución para el propietario.
    • 0: Ningún permiso para el grupo.
    • 0: Ningún permiso 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, escritura y ejecución.
  • ------: Ni tu grupo ni otros tienen ningún permiso.

Usando el Modo Detallado (Verbose Mode)

El modo detallado (verbose mode) puede ser útil cuando se crean múltiples directorios, ya que proporciona retroalimentación sobre cada creación. Esto es especialmente útil cuando se crean muchos directorios a la vez y se desea asegurarse de que todos se creen correctamente.

Vamos a crear varios directorios en modo detallado:

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

La opción -v significa "detallado" (verbose). Le dice a mkdir que imprima un mensaje para cada directorio que crea.

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 puede ser muy útil en scripts complejos o cuando se realizan tareas de resolución de problemas.

Combinando Opciones

Puedes combinar múltiples opciones con mkdir. Esto te permite crear estructuras complejas con permisos específicos y una salida detallada (verbose output) todo 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 esto:

  • -p: Crea directorios padre según sea necesario.
  • -v: Modo detallado (verbose mode), imprime un mensaje para cada directorio creado.
  • -m 750: Establece permisos (propietario: acceso completo, grupo: lectura y ejecución, otros: sin acceso).

Este comando crea dos directorios (drafts y references) dentro de research_paper, el cual 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---).

Visualizando tu Jardín Digital con el Comando tree

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

Ahora, usemos tree para ver la estructura de nuestro jardín digital:

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 en forma de árbol nos da una visión clara de nuestro jardín digital. Podemos ver todos los directorios que hemos creado, incluyendo las estructuras anidadas.

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

tree -p ~/project/digital_garden

Esto mostrará los permisos de cada directorio, así:

[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 creado todos los directorios que pretendíamos, con la estructura y los permisos correctos.

Este paso proporciona una conclusión satisfactoria a nuestro laboratorio (lab), permitiéndonos ver toda la estructura que hemos construido. El comando tree no solo es útil para este ejercicio, sino que es una herramienta valiosa para navegar y entender las estructuras de directorios en tus futuros proyectos en Linux.

Resumen

En este laboratorio (lab), exploramos la versatilidad del comando mkdir en Linux mediante la simulación de la creación de un jardín digital. Aprendimos cómo:

  1. Crear directorios individuales.
  2. Crear múltiples directorios a la vez.
  3. Crear estructuras de directorios anidados utilizando 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 una retroalimentación detallada.

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

Si bien no se cubrieron 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 predeterminado.
  • --context[=CTX]: Similar a -Z, o si se especifica CTX, establece el contexto de seguridad SELinux o SMACK a CTX.
  • --help: Muestra un mensaje de ayuda y finaliza.
  • --version: Muestra información de la versión y finaliza.

Estas habilidades son fundamentales para una organización eficiente del sistema de archivos en entornos Linux. Recuerda que, aunque nos centramos en un escenario de jardín digital, estas técnicas se aplican a cualquier situación en la que necesites crear y administrar estructuras de directorios en Linux. A medida que continúes tu viaje en Linux, encontrarás que mkdir es una herramienta indispensable para organizar tus archivos y proyectos.

Recursos