Skip to main content

Comment créer des répertoires sous Linux avec la commande 'mkdir'

Overview: Romans Ch. 1-4 (Avril 2025)

Overview: Romans Ch. 1-4 (Avril 2025)
Anonim

Ce guide vous montrera comment créer de nouveaux dossiers ou répertoires sous Linux à l’aide de la ligne de commande.

La commande que vous utilisez pour créer des répertoires est mkdir. Cet article décrit la méthode de base pour créer des répertoires sous Linux et couvre tous les commutateurs disponibles.

Comment créer un nouveau répertoire

Le moyen le plus simple de créer un nouveau répertoire est le suivant:

mkdir

Par exemple, si vous souhaitez créer un répertoire appelé test dans votre dossier d’accueil, ouvrez une fenêtre de terminal et assurez-vous d’être dans votre dossier d’accueil (utilisez la commande cd ~).

test mkdir

Modification des autorisations du nouveau répertoire

Après avoir créé un nouveau dossier, vous pouvez définir les autorisations de manière à ce que seul un utilisateur puisse accéder au dossier ou que certaines personnes puissent modifier les fichiers du dossier, mais que d'autres ne le soient qu'en lecture.

Dans la dernière section, je vous ai montré comment créer un répertoire appelé test. L'exécution de la commande ls vous montrera les autorisations pour ce répertoire:

ls -lt

Il y a de fortes chances que vous ayez quelque chose dans ce sens:

drwxr-xr-x 2 owner group 4096 9 mars 19:34 test

Les bits qui nous intéressent sontdrwxr-xr-x propriétaireet groupe

Le d nous dit que le test est un répertoire.

Les trois premiers caractères après le d correspondent aux autorisations du propriétaire pour le répertoire spécifié par le nom du propriétaire:

  • r signifie lire
  • w signifie écrire
  • x signifie exécuter (ce qui dans ce cas signifie que vous pouvez accéder au dossier)

Les trois caractères suivants correspondent aux autorisations de groupe pour le fichier spécifié par le nom du groupe. Encore une fois, les options sont r, w et x. Le - signifie qu'il manque une autorisation. Dans l'exemple ci-dessus, toute personne appartenant au groupe peut accéder au dossier et lire les fichiers, mais ne peut pas écrire dans le dossier.

Les trois derniers caractères correspondent aux autorisations dont disposent tous les utilisateurs. Comme vous pouvez le constater dans l'exemple ci-dessus, ces autorisations sont identiques à celles du groupe.

Pour modifier les autorisations d'un fichier ou d'un dossier, vous pouvez utiliser lechmodcommander. La commande chmod vous permet de spécifier 3 nombres qui définissent les autorisations:

  • autorisations de lecture = 4
  • autorisations d'écriture = 2
  • exécuter les autorisations = 1

Pour obtenir un mélange d'autorisations, additionnez les numéros. Par exemple, pour obtenir des autorisations de lecture et d'exécution, le nombre dont vous avez besoin est 5, pour obtenir des autorisations de lecture et d'écriture, le nombre est 6 et pour obtenir des autorisations d'écriture et d'exécution, le nombre est 3.

N'oubliez pas que vous devez spécifier 3 nombres dans le cadre de la commande chmod. Le premier numéro concerne les autorisations du propriétaire, le deuxième numéro concerne les autorisations du groupe et le dernier numéro concerne les autres utilisateurs.

Par exemple, pour obtenir des autorisations complètes sur le propriétaire, lisez et exécutez des autorisations sur le groupe. Aucune autorisation pour quiconque, tapez ce qui suit:

chmod 750 test

Si vous souhaitez modifier le nom du groupe auquel appartient un dossier, utilisez la commande chgrp.

Par exemple, imaginons que vous souhaitiez créer un répertoire accessible à tous les comptables de votre entreprise.

Tout d’abord, créez les comptes du groupe en tapant ce qui suit:

comptes groupadd

Si vous ne disposez pas des autorisations appropriées pour créer un groupe, vous devrez peut-être utiliser sudo pour obtenir des privilèges supplémentaires ou basculer vers un compte disposant d'autorisations valides à l'aide de la commande su.

Vous pouvez maintenant modifier le groupe d’un dossier en tapant ce qui suit:

comptes chgrp

Par exemple:

test des comptes chgrp

Pour donner à tout membre du groupe de comptes un accès en lecture, en écriture et en exécution, ainsi qu’au propriétaire, mais uniquement en lecture à tout le monde, vous pouvez utiliser la commande suivante:

chmod 770 test

Pour ajouter un utilisateur au groupe de comptes, vous voudrez probablement utiliser la commande suivante:

comptes usermod -a -G

La commande ci-dessus ajoute le groupe de comptes à la liste des groupes secondaires auxquels l'utilisateur a accès.

Comment créer un répertoire et définir des autorisations en même temps

Vous pouvez créer un répertoire et définir les autorisations pour ce répertoire en même temps à l'aide de la commande suivante:

mkdir -m777

La commande ci-dessus créera un dossier auquel tout le monde a accès. Il est très rare que vous souhaitiez créer quelque chose avec ce type d'autorisations.

Créer un dossier et tous les parents requis

Imaginez que vous souhaitiez créer une structure de répertoires, mais que vous ne vouliez pas créer chaque dossier individuel avec le chemin et descendre dans une arborescence.

Par exemple, vous pouvez créer des dossiers pour votre musique comme suit:

  • / home / musique / rock / alicecooper
  • / home / musique / rock / reine
  • / home / musique / rap / drdre
  • / home / musique / jazz / louisjordan

Il serait agaçant de devoir créer le dossier rock, puis les dossiers alice cooper et queen, puis de créer le dossier rap et le dossier dr dre, puis le dossier jazz et le dossier louisjordan.

En spécifiant le commutateur suivant, vous pouvez créer tous les dossiers parents à la volée s’ils n’existent pas déjà.

mkdir -p

Par exemple, pour créer l'un des dossiers énumérés ci-dessus, essayez la commande suivante:

mkdir -p ~ / musique / rock / alicecooper

Obtenir la confirmation qu'un répertoire a été créé

Par défaut, la commande mkdir ne vous indique pas si le répertoire que vous créez a été créé avec succès. Si aucune erreur n'apparaît, vous pouvez en déduire que c'est le cas.

Si vous souhaitez obtenir une sortie plus détaillée afin de savoir ce qui a été créé, utilisez le commutateur suivant.

mkdir -v

La sortie sera le long des lignes demkdir: répertoire / chemin / vers / nom_répertoire créé.

Utiliser "mkdir" dans un script shell

Parfois, vous voudrez utiliser la commande "mkdir" dans le cadre d'un script shell. Par exemple, examinons un script qui accepte un chemin. Lorsque le script est exécuté, il crée le dossier et ajoute un fichier texte unique appelé "hello".

#! / bin / bash mkdir $ @ cd $ @ touch bonjour

La première ligne doit être incluse dans chaque script que vous écrivez et sert à montrer qu'il s'agit bien d'un script BASH.

La commande "mkdir" permet de créer un dossier. Le "$ @" (également appelé paramètres d'entrée) à la fin des 2ème et 3ème lignes est remplacé par la valeur que vous spécifiez lors de l'exécution du script.

La commande "cd" passe dans le répertoire que vous spécifiez et enfin, la commande tactile crée un fichier vide appelé "hello".

Vous pouvez essayer le script par vous-même. Pour ce faire, suivez ces instructions:

  1. Ouvrez une fenêtre de terminal (appuyez sur Alt et T devrait le faire)
  2. Entrer nano createhellodirectory.sh
  3. Tapez les commandes ci-dessus dans l'éditeur
  4. Enregistrez le fichier en appuyant simultanément sur CTRL et O
  5. Quittez le fichier en appuyant simultanément sur CTRL et X
  6. Changer les permissions en tapant chmod + x createhellodirectory.sh
  7. Exécutez le script en tapant ./createhellodirectory.sh test

Lorsque vous exécutez le script, un répertoire appelé "test" est créé et si vous passez à ce répertoire (test cd) et lancez une liste de répertoires (ls), vous verrez un seul fichier appelé "bonjour".

Jusqu'ici, tout va bien, mais essayez maintenant d'exécuter l'étape 7 à nouveau.

  1. Une erreur apparaîtra indiquant que le dossier existe déjà.

Nous pouvons faire plusieurs choses pour améliorer le script. Par exemple, si le dossier existe déjà, nous ne nous en soucions pas tant qu'il existe.

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

Si vous spécifiez le -p dans le cadre de la commande mkdir, il ne générera pas d'erreur si le dossier existe déjà, mais s'il n'existe pas, il le créera.

En l’occurrence, la commande tactile créera un fichier s’il n’existe pas, mais modifie simplement la date et l’heure auxquelles vous avez accédé.

Imaginez que l'instruction tactile ait été remplacée par une instruction echo qui écrit le texte dans un fichier comme suit:

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

Si vous exécutez encore et encore la commande "./createhellodirectory.sh test", le fichier "hello" situé dans le répertoire de test grossira et comportera de plus en plus de lignes contenant le mot "hello".

Maintenant, cela peut être ou ne pas être comme prévu, mais disons pour le moment que ce n'est pas l'action souhaitée. Vous pouvez écrire un test pour vous assurer que le répertoire n'existe pas avant d'exécuter la commande echo comme suit.

#! / bin / bash mkdir $ @ 2> / dev / null; si $? -qq 0; then cd $ @ echo "bonjour" >> bonjour sortie fi

Le script ci-dessus est ma méthode préférée pour gérer la création de dossiers. La commande mkdir crée le dossier qui est passé en tant que paramètre d'entrée, mais toute sortie d'erreur est envoyée à / dev / null (ce qui signifie essentiellement nulle part).

La troisième ligne vérifie l'état de sortie de la commande précédente qui est l'instruction "mkdir" et si elle y parvient, elle exécutera les instructions jusqu'à ce que l'instruction "fi" soit atteinte.

Cela signifie que vous pouvez créer le dossier et effectuer tout ce que vous voulez si la commande aboutit. Si vous voulez faire autre chose si la commande n'a pas abouti, vous pouvez simplement entrer une instruction else comme suit:

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

Dans le script ci-dessus, si l'instruction mkdir fonctionne, l'instruction echo envoie le mot "hello" à la fin du fichier appelé "hello". S'il n'existe pas, un nouveau fichier contenant le mot "hello" sera créé. bonjour "dedans.

Cet exemple n’est pas particulièrement pratique car vous pouvez obtenir les mêmes résultats simplement en exécutant echo "bonjour"> bonjour ligne. Le but de l'exemple est de montrer que vous pouvez exécuter la commande "mkdir", masquer la sortie d'erreur, vérifier le statut de la commande pour voir si elle a réussi ou non, puis exécuter un jeu de commandes si la commande "mkdir" a réussi et un autre ensemble de commandes si ce n'était pas.