Com crear directoris a Linux amb el comandament "mkdir"

Aquesta guia us mostrarà com crear noves carpetes o directoris a Linux mitjançant la línia d'ordres.

L'ordre que utilitzeu per crear directoris és mkdir. Aquest article us mostra la manera bàsica de crear directoris a Linux, així com de cobrir tots els commutadors disponibles.

Com crear un nou directori

La forma més senzilla de crear un nou directori és la següent:

mkdir

Per exemple, si voleu crear un directori sota la vostra carpeta d'inici anomenada prova, obriu una finestra de terminal i assegureu-vos que esteu a la vostra carpeta d'inici (utilitzeu l' ordre cd ~ ).

prova mkdir

Canvi dels permisos del directori nou

Després de crear una nova carpeta, és possible que vulgueu establir els permisos perquè només un determinat usuari pugui accedir a la carpeta o perquè algunes persones puguin editar fitxers a la carpeta, però d'altres només han llegit.

A la darrera secció, us vaig mostrar com crear un directori anomenat test. Executar l'ordre ls us mostrarà els permisos d'aquest directori:

ls -lt

Les possibilitats són que tindreu alguna cosa al llarg d'aquestes línies:

drwxr-xr-x 2 grup propietari 4096 mar 9 19:34 prova

Els bits que estem interessats són drwxr-xr-x propietari i grup

El d ens diu que la prova és un directori.

Els tres primers caràcters després de la d són els permisos del propietari del directori especificat pel nom del propietari.

Els següents tres caràcters són els permisos de grup per al fitxer especificat pel nom del grup. De nou, les opcions són r, w i x. El - significa que hi falta el permís. En l'exemple anterior qualsevol persona que pertany al grup pot accedir a la carpeta i llegir els fitxers, però no pot escriure a la carpeta.

Els tres últims caràcters són els permisos que tenen tots els usuaris i com es pot veure a l'exemple anterior, són els mateixos que els permisos del grup.

Per canviar els permisos d'un fitxer o una carpeta, podeu utilitzar l'ordre chmod . La comanda chmod us permet especificar 3 nombres que estableixen els permisos.

Per obtenir una barreja de permisos, afegiu els números junts. Per exemple, per obtenir permisos de lectura i execució, el número que necessiteu és 5, per obtenir permisos de lectura i escriptura, el número és de 6 i per obtenir permisos d'escriptura i execució, el número és de 3.

Recordeu que heu d'especificar 3 números com a part de l'ordre chmod. El primer número correspon als permisos del propietari, el segon número correspon als permisos del grup i l'últim número és per a tots els altres.

Per exemple, per obtenir permisos complets al propietari, llegiu i executeu permisos al grup i no hi hagi permisos per a cap altra persona escriviu el següent:

prova chmod 750

Si voleu canviar el nom del grup que posseeix una carpeta, utilitzeu l'ordre chgrp.

Per exemple, imagineu que voleu crear un directori que tots els comptadors de la vostra empresa poden accedir.

Primer de tot, creeu els comptes del grup escrivint el següent:

groupadd accounts

Si no teniu el permís correcte per crear un grup, és possible que hàgiu d' utilitzar sudo per obtenir privilegis addicionals o canviar a un compte amb permisos vàlids utilitzant l'ordre su .

Ara podeu canviar el grup per a una carpeta escrivint el següent:

comptes de chgrp

Per exemple:

prova de comptes chgrp

Per donar a tothom al grup de comptes llegir, escriure i executar l'accés, així com el propietari, però només de lectura a tothom, podeu utilitzar el següent comandament:

prova chmod 770

Per afegir un usuari al grup de comptes, probablement voldreu utilitzar el següent comandament:

usermod -a -G accounts

La comanda anterior afegeix el grup de comptes a la llista de grups secundaris als quals l'usuari té accés.

Com crear un directori i establir permisos al mateix temps

Podeu crear un directori i establir els permisos d'aquest directori al mateix temps mitjançant l'ordre següent:

mkdir-m777

L'ordre anterior crearà una carpeta a la qual tothom té accés. És molt estrany que vulgueu crear qualsevol cosa amb aquest tipus de permisos.

Crea una carpeta i qualsevol altre pare que sigui necessari

Imagineu que voleu crear una estructura de directoris però no voleu crear cada carpeta individual juntament amb el camí i baixar un arbre.

Per exemple, podeu crear carpetes per a la vostra música de la manera següent:

Seria molest per haver de crear la carpeta de rock, després la carpeta de cooperació i reina, i després crear la carpeta de rap i la carpeta dr dre i, a continuació, la carpeta de jazz i després la carpeta louisjordan.

Si especifiqueu el següent interruptor, podeu crear totes les carpetes principals quan no existeixin.

mkdir -p

Per exemple, per crear una de les carpetes enumerades anteriorment, proveu l'ordre següent:

mkdir -p ~ / music / rock / alicecooper

Com confirmar que es va crear un directori

Per defecte, l'ordre mkdir no us indica si el directori que esteu creant s'ha creat correctament. Si no apareixen errors, podeu assumir que ho ha fet.

Si voleu obtenir més informació de manera que sàpiga el que s'ha creat, useu el següent interruptor.

mkdir -v

La sortida serà al llarg de les línies de mkdir: directori / path / to / directoryname creat .

Amb & # 34; mkdir & # 34; en un script de shell

De vegades voldreu utilitzar l'ordre "mkdir" com a part d'un script shell. Per exemple, vegem un script que accepta una ruta. Quan s'executa la seqüència es crearà la carpeta i s'afegirà un fitxer de text anomenat "hola".

#! / bin / bash

mkdir $ @

cd $ @

toqueu l'hola

La primera línia s'ha d'incloure en cada script que escriviu i s'utilitza per mostrar que aquest és, de fet, un script BASH.

L'ordre "mkdir" s'utilitza per crear una carpeta. El "$ @" ( també conegut com a paràmetres d'entrada ) al final de la segona i tercera línia es reemplaça amb el valor que especifiqueu en executar l'script.

La comanda "cd" canvia al directori que heu especificat i, finalment, la comanda tàctil crea un fitxer buit anomenat "hola".

Podeu provar l'script per si mateix. Per fer-ho seguiu aquestes instruccions:

  1. Obriu una finestra de terminal (premeu Alt i T hauria de fer-ho)
  2. Escriu nano createhellodirectory.sh
  3. Escriviu les ordres anteriors a l'editor
  4. Deseu el fitxer prement CTRL i O alhora
  5. Sortiu del fitxer prement CTRL i X al mateix temps
  6. Canvieu els permisos escrivint chmod + x createhellodirectory.sh
  7. Executeu el script escrivint ./createhellodirectory.sh test

Quan executeu l'script, es crearà un directori anomenat "test" i, si canvieu a aquest directori ( prova de cd) i executeu un llistat de directoris ( ls), veureu un únic fitxer anomenat "hola".

Fins ara és bo, però ara prova de seguir el pas 7.

  1. Apareixerà un error que indica que la carpeta ja existeix.

Hi ha diverses coses que podem fer per millorar el guió. Per exemple, si la carpeta ja existeix, no ens importa gaire, sempre que existeixi.

#! / bin / bash

mkdir -p $ @

cd $ @

toqueu l'hola

Si especifiqueu -p com a part de l'ordre mkdir, no es produirà un error si la carpeta ja existeix, però si no existeix, la crearà.

Com passa, l'ordre touch crearà un fitxer si no existeix, però si existeix, només modifica l'última data i hora d'accés.

Imagineu que la instrucció touch s'ha reemplaçat per una instrucció de ressò que escriu text a un fitxer de la següent manera:

#! / bin / bash

mkdir -p $ @

cd $ @

ressò "hola" >> hola

Si executeu l'ordre "./createhellodirectory.sh test" una vegada i una altra, l'efecte serà que el fitxer anomenat "hola" al directori de proves creixerà més gran i més gran amb més línies amb la paraula "hola".

Ara bé, pot ser que sigui possible o no, però diguem ara que aquesta no és l'acció desitjada. Podeu escriure una prova per assegurar-vos que el directori no existeix abans d'executar l'ordre echo de la manera següent.

#! / bin / bash

mkdir $ @ 2> / dev / null;

si [$? -eq 0]; llavors

cd $ @

ressò "hola" >> hola

sortir

fi

L'script anterior és el meu mètode preferit per gestionar la creació de carpetes. L'ordre mkdir crea la carpeta que es passa com a paràmetre d'entrada, però qualsevol sortida d'error s'envia a / dev / null (que bàsicament significa enlloc).

La tercera línia comprova l'estat de sortida de la comanda anterior que és la instrucció "mkdir" i, si ho ha aconseguit, realitzarà les instruccions fins que s'aconsegueixi la instrucció "fi".

Això significa que podeu crear la carpeta i fer totes les coses que voleu si la comanda és correcta. Si voleu fer alguna cosa més si la comanda no ha tingut èxit, simplement haureu d'introduir una altra declaració de la manera següent:

#! / bin / bash

mkdir $ @ 2> / dev / null;

si [$? -eq 0]; llavors
cd $ @
ressò "hola" >> hola
sortir
altra cosa
cd $ @
ressò "hola"> hola
sortir
fi

En el guió anterior si la instrucció mkdir funciona, llavors la instrucció echo envia la paraula "hola" al final del fitxer anomenat "hola" mentre que si no existeix, es crearà un nou fitxer anomenat "hola" amb la paraula " hola "en ell.

Aquest exemple no és particularment pràctic, ja que podria aconseguir els mateixos resultats simplement executant sempre la línia "hola"> hola . El punt de l'exemple és mostrar que podeu executar l'ordre "mkdir", amagar la sortida d'error, comprovar l'estat de l'ordre per veure si va tenir èxit o no i executar un conjunt d'ordres si l'ordre "mkdir" va tenir èxit i un altre conjunt d'ordres si no fos així.