Skip to main content

Cómo crear directorios en Linux con el comando 'mkdir'

Como instalar scaner mediante ftp (Junio 2026)

Como instalar scaner mediante ftp (Junio 2026)
Anonim

Esta guía le mostrará cómo crear nuevas carpetas o directorios dentro de Linux usando la línea de comandos.

El comando que utiliza para crear directorios es mkdir. Este artículo le muestra la forma básica de crear directorios en Linux, así como cubrir todos los switches disponibles.

Cómo crear un nuevo directorio

La forma más sencilla de crear un nuevo directorio es la siguiente:

mkdir

Por ejemplo, si desea crear un directorio debajo de su carpeta de inicio llamada prueba, abra una ventana de terminal y asegúrese de estar en su carpeta de inicio (use el comando cd ~).

prueba de mkdir

Cambiando los permisos del nuevo directorio

Después de crear una nueva carpeta, es posible que desee establecer los permisos para que solo un usuario determinado pueda acceder a la carpeta o para que algunas personas puedan editar archivos en la carpeta, pero otros solo tienen lectura.

En la última sección, te mostré cómo crear un directorio llamado prueba. Ejecutar el comando ls le mostrará los permisos para ese directorio:

ls -lt

Lo más probable es que tengas algo en esta línea:

drwxr-xr-x 2 grupo propietario 4096 9 de marzo 19:34 prueba

Los bits que nos interesan sonpropietario de drwxr-xr-xy grupo

La d nos dice que la prueba es un directorio.

Los primeros tres caracteres después de la d son los permisos de propietario para el directorio especificado por el nombre del propietario:

  • r significa lectura
  • w significa escribir
  • x significa ejecutar (lo que en este caso significa que puede acceder a la carpeta)

Los siguientes tres caracteres son los permisos de grupo para el archivo especificado por el nombre del grupo. Nuevamente las opciones son r, w, y x. El - significa que falta un permiso. En el ejemplo anterior, cualquiera que pertenezca al grupo puede acceder a la carpeta y leer los archivos, pero no puede escribir en la carpeta.

Los últimos tres caracteres son los permisos que tienen todos los usuarios y, como puede ver en el ejemplo anterior, son los mismos que los permisos de grupo.

Para cambiar los permisos de un archivo o carpeta puede usar elchmodmando. El comando chmod le permite especificar 3 números que establecen los permisos:

  • permisos de lectura = 4
  • permisos de escritura = 2
  • ejecutar permisos = 1

Para obtener una mezcla de permisos debes sumar los números. Por ejemplo, para obtener los permisos de lectura y ejecución el número que necesita es 5, para obtener los permisos de lectura y escritura el número es 6 y para obtener los permisos de escritura y ejecución el número es 3.

Recuerde que debe especificar 3 números como parte del comando chmod. El primer número es para los permisos de propietario, el segundo número es para los permisos de grupo y el último número es para todos los demás.

Por ejemplo, para obtener permisos completos sobre el propietario, lea y ejecute permisos en el grupo y ningún permiso para nadie más escriba lo siguiente:

prueba de chmod 750

Si desea cambiar el nombre del grupo que posee una carpeta, use el comando chgrp.

Por ejemplo, imagine que desea crear un directorio al que puedan acceder todos los contadores de su empresa.

En primer lugar, cree las cuentas de grupo escribiendo lo siguiente:

cuentas grupales

Si no tiene los permisos correctos para crear un grupo, puede necesitar usar sudo para obtener privilegios adicionales o cambiar a una cuenta con permisos válidos usando el comando su.

Ahora puede cambiar el grupo de una carpeta escribiendo lo siguiente:

cuentas chgrp

Por ejemplo:

prueba de cuentas chgrp

Para que cualquiera en el grupo de cuentas pueda leer, escribir y ejecutar el acceso, así como el propietario, pero de solo lectura para todos, puede usar el siguiente comando:

prueba de chmod 770

Para agregar un usuario al grupo de cuentas, probablemente querrá usar el siguiente comando:

usermod -a -G cuentas

El comando anterior agrega el grupo de cuentas a la lista de grupos secundarios a los que el usuario tiene acceso.

Cómo crear un directorio y establecer permisos al mismo tiempo

Puede crear un directorio y establecer los permisos para ese directorio al mismo tiempo utilizando el siguiente comando:

mkdir -m777

El comando anterior creará una carpeta a la que todos tienen acceso. Es muy raro que desee crear algo con este tipo de permisos.

Crear una carpeta y los padres que se requieren

Imagine que desea crear una estructura de directorios pero no desea crear cada carpeta individual junto con la forma y trabajar a lo largo de un árbol.

Por ejemplo, puedes crear carpetas para tu música de la siguiente manera:

  • / Inicio / Música / Rock / Alicecooper
  • / Inicio / Música / Rock / Reina
  • / Inicio / música / rap / drdre
  • / Inicio / Música / Jazz / Louisjordan

Sería molesto tener que crear la carpeta rock, luego la carpeta alice cooper and queen y luego la carpeta rap y la carpeta dr dre y luego la carpeta jazz y luego la carpeta louisjordan.

Al especificar el siguiente interruptor, puede crear todas las carpetas principales sobre la marcha si aún no existen.

mkdir -p

Por ejemplo, para crear una de las carpetas enumeradas anteriormente, pruebe el siguiente comando:

mkdir -p ~ / música / rock / alicecooper

Obtención de confirmación de que se creó un directorio

De forma predeterminada, el comando mkdir no le dice si el directorio que está creando se creó correctamente. Si no aparecen errores, entonces puede asumir que tiene.

Si desea obtener una salida más detallada para saber qué se ha creado, use el siguiente interruptor.

mkdir -v

La salida será a lo largo de las líneas demkdir: directorio creado / ruta / a / directoryname.

Usando "mkdir" en un script de shell

A veces querrá usar el comando "mkdir" como parte de un script de shell. Por ejemplo, veamos una secuencia de comandos que acepta una ruta. Cuando se ejecuta el script, creará la carpeta y agregará un archivo de texto único llamado "hola".

#! / bin / bash mkdir $ @ cd $ @ toque hola

La primera línea debe incluirse en cada script que escriba y se usa para mostrar que este es realmente un script BASH.

El comando "mkdir" se utiliza para crear una carpeta. El "$ @" (también conocido como parámetros de entrada) al final de la 2ª y 3ª línea se reemplaza con el valor que especifique al ejecutar el script.

El comando "cd" cambia al directorio que especifique y, finalmente, el comando táctil crea un archivo vacío llamado "hola".

Puedes probar el script por ti mismo. Para ello siga estas instrucciones:

  1. Abre una ventana de terminal (presiona Alt y T debería hacerlo)
  2. Entrar nano createhellodirectory.sh
  3. Escriba los comandos de arriba en el editor
  4. Guarde el archivo presionando CTRL y O al mismo tiempo
  5. Salga del archivo presionando CTRL y X al mismo tiempo
  6. Cambia los permisos escribiendo chmod + x createhellodirectory.sh
  7. Ejecutar el script escribiendo ./createhellodirectory.sh prueba

Cuando ejecute el script, se creará un directorio llamado "prueba" y si cambia a ese directorio (prueba de cd) y ejecutar un listado de directorios (ls), Verás un solo archivo llamado "hola".

Hasta ahora todo bien, pero ahora intenta correr el paso 7 otra vez.

  1. Aparecerá un error que indica que la carpeta ya existe.

Hay varias cosas que podemos hacer para mejorar el script. Por ejemplo, si la carpeta ya existe, no nos importa especialmente mientras exista.

#! / bin / bash mkdir -p $ @ cd $ @ touch hola

Si especifica la opción -p como parte del comando mkdir, no generará un error si la carpeta ya existe, pero si no existe, la creará.

A medida que sucede, el comando táctil creará un archivo si no existe, pero si existe, simplemente modifica la última fecha y hora de acceso.

Imagine que la instrucción táctil se reemplazó con una instrucción de eco que escribe texto en un archivo de la siguiente manera:

#! / bin / bash mkdir -p $ @ cd $ @ echo "hola" >> hola

Si ejecuta el comando "./createhellodirectory.sh test" una y otra vez, el efecto será que el archivo llamado "hola" en el directorio de prueba crecerá cada vez más con más y más líneas con la palabra "hola" en él.

Ahora, esto puede o no puede ser como está previsto pero digamos por ahora que esta no es la acción deseada. Puede escribir una prueba para asegurarse de que el directorio no existe antes de ejecutar el comando echo de la siguiente manera.

#! / bin / bash mkdir $ @ 2> / dev / null; si $? -eq 0; luego cd $ @ echo "hola" >> hola salir fi

El script anterior es mi método preferido para manejar la creación de carpetas. El comando mkdir crea la carpeta que se pasa como un parámetro de entrada, pero cualquier salida de error se envía a / dev / null (lo que esencialmente no significa en ninguna parte).

La tercera línea verifica el estado de salida del comando anterior, que es la declaración "mkdir" y, si tiene éxito, ejecutará las instrucciones hasta que se alcance la instrucción "fi".

Esto significa que puede crear la carpeta y realizar todas las cosas que desea si el comando es exitoso. Si desea hacer otra cosa si el comando no tuvo éxito, simplemente puede ingresar una instrucción else de la siguiente manera:

#! / bin / bash mkdir $ @ 2> / dev / null; si $? -eq 0; thencd $ @ echo "hello" >> helloexitelsecd $ @ echo "hello"> helloexitfi

En el script anterior, si la instrucción mkdir funciona, la instrucción echo envía la palabra "hola" al final del archivo llamado "hola", mientras que si no existe, se creará un nuevo archivo llamado "hola" con la palabra hola "en ello.

Este ejemplo no es particularmente práctico porque podría lograr los mismos resultados simplemente ejecutando siempre echo "hola"> hola linea. El punto del ejemplo es mostrar que puede ejecutar el comando "mkdir", ocultar la salida de error, verificar el estado del comando para ver si fue exitoso o no y luego ejecutar un conjunto de comandos si el comando "mkdir" Fue exitoso y otro conjunto de comandos si no lo fue.