Como crear directorios en Linux co comando "mkdir"

Esta guía mostraralle como crear novos cartafoles ou directorios dentro de Linux usando a liña de comandos.

O comando que usa para crear directorios é mkdir. Este artigo mostra a forma básica de crear directorios en Linux, así como cubrir todos os switches dispoñibles.

Como crear un novo directorio

O xeito máis sinxelo de crear un novo directorio é o seguinte:

mkdir

Por exemplo, se quere crear un directorio baixo o seu cartafol persoal chamado proba, abra unha fiestra de terminal e asegúrese de estar no seu cartafol persoal (use o comando cd ~ ).

proba mkdir

Cambiar os permisos do novo directorio

Despois de crear un novo cartafol pode que desexe establecer os permisos para que só un determinado usuario poida acceder ao cartafol ou para que algunhas persoas poidan editar ficheiros no cartafol pero outros só leron.

Na última sección, mostrámosche como crear un directorio chamado proba. Se executa o comando ls mostrarache os permisos para ese directorio:

ls -lt

As posibilidades son que terá algo ao longo desta liña:

drwxr-xr-x 2 propietario grupo 4096 mar 9 19:34 proba

Os bits nos que estamos interesados ​​son drwxr-xr-x propietario e grupo

O d cóntanos que a proba é un directorio.

Os primeiros tres caracteres despois do d son os permisos do propietario para o directorio especificado polo nome do propietario.

Os seguintes tres caracteres son os permisos de grupo para o ficheiro especificado polo nome do grupo. Nuevamente as opcións son r, w e x. O - significa que falta un permiso. No exemplo anterior calquera que pertenza ao grupo pode acceder ao cartafol e ler os ficheiros pero non pode escribir no cartafol.

Os tres últimos caracteres son os permisos que todos os usuarios teñen e como se pode ver no exemplo anterior son os mesmos que os permisos do grupo.

Para cambiar os permisos dun ficheiro ou cartafol pode usar o comando chmod . O comando chmod permítelle especificar 3 números que establezan os permisos.

Para obter unha mestura de permisos, engade os números xuntos. Por exemplo, para obter permisos de lectura e execución o número que precisa é de 5, para obter permisos de lectura e escritura o número é 6 e para obter permisos de escritura e execución o número é 3.

Lembre que precisa especificar 3 números como parte do comando chmod. O primeiro número é para os permisos do propietario, o segundo número é para os permisos do grupo eo último número é para todos os outros.

Por exemplo, para obter permisos completos sobre o propietario, ler e executar permisos no grupo e sen permisos para calquera outra persoa escriba o seguinte:

proba chmod 750

Se desexa cambiar o nome do grupo que posúe un cartafol use o comando chgrp.

Por exemplo, imaxine que quere crear un directorio que todos os contadores da súa empresa poidan acceder.

Primeiro de todo, crea as contas do grupo escribindo o seguinte:

contas de grupo numeradas

Se non ten o permiso correcto para crear un grupo, é posible que necesite usar sudo para obter privilexios adicionais ou cambiar a unha conta con permisos válidos usando o comando su .

Agora podes cambiar o grupo para un cartafol escribindo o seguinte:

contas chgrp

Por exemplo:

proba de contas chgrp

Para que calquera usuario no grupo de contas lea, escriba e execute o acceso, así como o propietario, pero só de lectura a todos os demais, pode usar o seguinte comando:

proba chmod 770

Para engadir un usuario ao grupo de contas, probabelmente desexa usar o seguinte comando:

contas de usermod -a -G

O comando anterior engade o grupo de contas á lista de grupos secundarios aos que o usuario ten acceso.

Como crear un directorio e establecer permisos ao mesmo tempo

Pode crear un directorio e establecer os permisos para ese directorio ao mesmo tempo usando o seguinte comando:

mkdir-m777

O comando anterior creará un cartafol ao que todo o mundo teña acceso. É moi raro que desexes crear calquera cousa con este tipo de permisos.

Crea unha carpeta e todos os pais que sexan necesarios

Imaxina que queres crear unha estrutura de directorio pero non queres crear cada cartafol individual xunto co camiño e traballar abaixo nunha árbore.

Por exemplo, podes estar creando cartafoles para a túa música como segue:

Sería molesto ter que crear o cartafol de rock, entón o cartafol de alice cooper e queen e despois crear o cartafol de rap eo cartafol dr dre e despois o cartafol de jazz e despois o cartafol louisjordan.

Ao especificar o seguinte chave, pode crear todos os cartafoles primarios sobre a marcha se aínda non existen.

mkdir -p

Por exemplo, para crear unha das carpetas enumeradas arriba, proba o seguinte comando:

mkdir -p ~ / music / rock / alicecooper

Confirmación de que se creou un directorio

De xeito predeterminado, o comando mkdir non indica se o directorio que está creando foi creado con éxito. Se non aparecen erros, podes supoñer que ten.

Se desexa obter máis información para que saiba o que se creou use o seguinte.

mkdir -v

A saída estará ao longo das liñas de mkdir: directorio / path / to / directoryname creado .

Usando & # 34; mkdir & # 34; nunha secuencia de comandos Shell

Ás veces, quererá usar o comando "mkdir" como parte dun script shell. Por exemplo, vexamos un script que acepta un camiño. Cando se executa o script, creará o cartafol e engadirá un ficheiro de texto chamado "hello".

#! / bin / bash

mkdir $ @

cd $ @

toque ola

A primeira liña debería incluírse en cada script que escribe e úsase para mostrar que este é realmente un script BASH.

O comando "mkdir" úsase para crear un cartafol. O "$ @" ( tamén coñecido como parámetros de entrada ) ao final da segunda e terceira liña substitúese co valor que especifica ao executar o script.

O comando "cd" cambia ao directorio que especifica e finalmente o comando touch crea un ficheiro baleiro chamado "hello".

Podes probar o script por ti mesmo. Para facelo, siga estas instrucións:

  1. Abre unha ventá de terminal (prema Alt e T debería facelo)
  2. Introduce nano createhellodirectory.sh
  3. Escribe os comandos anteriores no editor
  4. Garda o ficheiro premendo CTRL e O ao mesmo tempo
  5. Sae do ficheiro premendo CTRL e X ao mesmo tempo
  6. Cambia os permisos escribindo chmod + x createhellodirectory.sh
  7. Executa o script escribindo ./createhellodirectory.sh proba

Cando executes o script crearase un directorio chamado "proba" e se cambias a ese directorio ( proba de cd) e executa unha listaxe de directorio ( ls), verás un só ficheiro chamado "hello".

Ata agora é bo pero agora intente executar o paso 7 de novo.

  1. Aparecerá un erro indicando que o cartafol xa existe.

Hai varias cousas que podemos facer para mellorar o script. Por exemplo, se o cartafol xa existe, non nos importa especialmente sempre que exista.

#! / bin / bash

mkdir -p $ @

cd $ @

toque ola

Se especifique o -p como parte do comando mkdir entón non será un erro se o cartafol xa existe, pero se non existe, o creará.

Como sucede, o comando touch creará un ficheiro se non existe, pero se existe, simplemente modifica a última data e hora de acceso.

Imaxina que a declaración táctil foi substituída por unha declaración de eco que escribe texto a un ficheiro como segue:

#! / bin / bash

mkdir -p $ @

cd $ @

eco "Ola" >> Ola

Se executas o comando "./createhellodirectory.sh test" unha e outra vez o efecto será que o arquivo chamado "hello" no directorio de probas crecerá cada vez con máis e máis liñas coa palabra "hello" nel.

Agora ben, isto pode ou non ser así, pero digamos que esta non é a acción desexada. Pode escribir unha proba para asegurarse de que o directorio non existe antes de executar o comando de eco do seguinte xeito.

#! / bin / bash

mkdir $ @ 2> / dev / null;

se [$? -eq 0]; entón

cd $ @

eco "Ola" >> Ola

saída

fi

O script anterior é o meu método preferido para xestionar a creación de cartafoles. O comando mkdir crea a carpeta que se pasa como parámetro de entrada, pero calquera saída de erro envíase a / dev / null (o que esencialmente significa nengún lugar).

A terceira liña verifica o estado de saída do comando anterior que é a declaración "mkdir" e se conseguiu realizar as declaracións ata que se alcanza a declaración "fi".

Isto significa que pode crear o cartafol e realizar todas as cousas que desexe se o comando é exitoso. Se queres facer outra cousa se o comando non tivo éxito, pode simplemente ingresar unha declaración máis como segue:

#! / bin / bash

mkdir $ @ 2> / dev / null;

se [$? -eq 0]; entón
cd $ @
eco "Ola" >> Ola
saída
outra cousa
cd $ @
eco "Ola"> Ola
saída
fi

No guión anterior se a declaración de mkdir funciona, entón a instrución de eco envía a palabra "hello" ao final do ficheiro chamado "hello" e, se non existe, crearase un novo ficheiro chamado "hello" coa palabra " Ola "nela.

Este exemplo non é particularmente práctico porque podería conseguir os mesmos resultados simplemente executando o eco "hello"> hello line . O punto do exemplo é amosar que pode executar o comando "mkdir", ocultar a saída de erro, comprobar o estado do comando para ver se foi exitoso ou non e executar un conxunto de comandos se o comando "mkdir" tivo éxito e outro conxunto de comandos se non o fose.