Commande Linux mkdir : Création de répertoires

LinuxBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, nous allons explorer la commande mkdir sous Linux, un outil fondamental pour créer et organiser des répertoires. Nous allons simuler la mise en place d'un "jardin numérique" (digital garden) — un système personnel de gestion des connaissances — pour apprendre à utiliser efficacement mkdir dans divers scénarios. Cette expérience pratique vous aidera à comprendre la création de dossiers, les structures imbriquées et le paramétrage des permissions sous Linux, même si vous débutez totalement avec la ligne de commande.

Création de la racine de votre jardin numérique

Commençons par créer le répertoire racine de votre jardin numérique.

Tout d'abord, ouvrez votre terminal. Vous verrez une invite de commande qui ressemble à ceci :

labex:project/$

Cela indique que vous vous trouvez dans le répertoire /home/labex/project, ce qui est parfait pour notre exercice.

Maintenant, créons un répertoire nommé digital_garden :

mkdir digital_garden

Ici, mkdir signifie "make directory" (créer un répertoire). Cette commande génère un nouveau dossier nommé digital_garden à l'emplacement actuel.

Pour vérifier que le répertoire a bien été créé, nous allons utiliser la commande ls, qui liste le contenu d'un dossier :

ls

Vous devriez voir apparaître digital_garden dans le résultat. Si ce n'est pas le cas, ne vous inquiétez pas ! Réessayez simplement la commande mkdir.

Ajout des sections principales

Dans un jardin numérique, il est judicieux d'organiser ses pensées par grandes catégories. Créons des répertoires pour différents types de contenus.

Nous allons créer trois dossiers à l'intérieur de notre digital_garden : 'notes', 'projects' et 'resources'. Vous pouvez le faire en trois commandes distinctes :

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

Ici, ~/project/digital_garden/ représente le chemin complet vers notre jardin numérique. Le symbole ~ est un raccourci qui désigne votre "répertoire personnel" (home directory).

Pour visualiser la nouvelle structure, utilisez la commande ls suivie du chemin de votre jardin :

ls ~/project/digital_garden

Vous devriez voir les trois nouveaux répertoires listés : notes, projects et resources.

À titre d'exemple, voici comment vous pourriez les utiliser :

  • notes pour stocker des pensées rapides ou des réflexions quotidiennes.
  • projects pour vos travaux ou études à plus long terme.
  • resources pour conserver des documents de référence.

Création de répertoires imbriqués

Souvent, vous aurez besoin de créer des dossiers à l'intérieur d'autres dossiers, créant ainsi une structure imbriquée. L'option -p permet de créer automatiquement les répertoires parents si nécessaire, ce qui est extrêmement pratique pour les structures profondes.

Créons une structure imbriquée pour un projet hypothétique d'application web :

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

Cette commande réalise plusieurs actions simultanément :

  • Elle crée un dossier web_app dans projects.
  • À l'intérieur de web_app, elle crée un dossier src.
  • Enfin, dans src, elle crée un dossier components.

L'option -p (pour "parents") indique à mkdir de créer tous les répertoires parents manquants sur le chemin. Sans cette option, vous obtiendriez une erreur si une partie du chemin n'existait pas encore.

Pour visualiser cette nouvelle structure, utilisez la commande ls avec l'option -R, qui affiche le contenu de manière récursive :

ls -R ~/project/digital_garden/projects/web_app

La structure hiérarchique des répertoires devrait alors s'afficher.

Définition des permissions de répertoire

Lors de la création de répertoires, vous pouvez définir des droits d'accès spécifiques. C'est utile pour contrôler qui peut consulter, modifier ou exécuter des fichiers au sein du dossier.

Créons un répertoire nommé 'private' avec des permissions restreintes :

mkdir -m 700 ~/project/digital_garden/private

Voici le détail de cette commande :

  • mkdir crée le répertoire.
  • -m 700 définit les permissions.
    • 7 : Lecture, écriture et exécution pour le propriétaire.
    • 0 : Aucun droit pour le groupe.
    • 0 : Aucun droit pour les autres utilisateurs.

En d'autres termes, vous seul (le propriétaire) pouvez accéder à ce dossier.

Pour vérifier les permissions, utilisez :

ls -ld ~/project/digital_garden/private

Le résultat devrait ressembler à ceci :

drwx------ 2 labex labex 6 Aug  7 18:40 /home/labex/project/digital_garden/private

Ici, drwx------ signifie :

  • d : C'est un répertoire (directory).
  • rwx : Vous (le propriétaire) avez les droits de lecture (read), écriture (write) et exécution (execute).
  • ------ : Ni votre groupe ni les autres n'ont de permissions.

Utilisation du mode verbeux

Le mode verbeux est utile lors de la création de plusieurs répertoires, car il fournit une confirmation pour chaque création. C'est particulièrement pratique lorsque vous créez de nombreux dossiers d'un coup et que vous voulez vous assurer que tout s'est bien passé.

Créons plusieurs répertoires en mode verbeux :

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

L'option -v signifie "verbose". Elle demande à mkdir d'afficher un message pour chaque répertoire créé.

Vous devriez voir un message similaire à celui-ci :

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'

Ce retour d'information est très utile dans les scripts complexes ou lors de phases de dépannage.

Combinaison d'options

Vous pouvez combiner plusieurs options avec mkdir. Cela permet de créer des structures complexes avec des permissions spécifiques et un retour détaillé, le tout en une seule commande.

Créons une structure imbriquée pour un projet de recherche hypothétique avec des permissions restreintes :

mkdir -pvm 750 ~/project/digital_garden/projects/research_paper/drafts ~/project/digital_garden/projects/research_paper/references

Analysons cette commande :

  • -p : Crée les répertoires parents si nécessaire.
  • -v : Mode verbeux, affiche un message pour chaque création.
  • -m 750 : Définit les permissions (propriétaire : accès complet, groupe : lecture et exécution, autres : aucun accès).

Cette commande crée deux dossiers (drafts et references) à l'intérieur de research_paper, lequel est lui-même créé dans projects s'il n'existait pas déjà.

Pour vérifier la structure et les permissions :

ls -lR ~/project/digital_garden/projects/research_paper

Vous devriez voir les répertoires imbriqués avec les permissions spécifiées (drwxr-x---).

Visualisation de votre jardin numérique avec la commande tree

Maintenant que nous avons structuré notre jardin numérique, utilisons la commande tree pour le visualiser. La commande tree affiche l'arborescence des répertoires sous une forme graphique, ce qui est à la fois informatif et esthétique.

Utilisons tree pour voir l'ensemble de notre structure :

tree ~/project/digital_garden

Le résultat devrait ressembler à ceci :

/home/labex/project/digital_garden
|-- notes
|-- private
|-- projects
|   |-- research_paper
|   |   |-- drafts
|   |   `-- references
|   `-- web_app
|       `-- src
|           `-- components
`-- resources
    |-- articles
    |-- books
    `-- videos

13 directories, 0 files

Cette vue en arborescence offre un aperçu clair de notre jardin numérique. On y voit tous les dossiers créés, y compris les structures imbriquées.

Si vous souhaitez voir plus de détails, notamment les permissions que nous avons définies, vous pouvez ajouter l'option -p à tree :

tree -p ~/project/digital_garden

Cela affichera les droits d'accès pour chaque dossier, comme ceci :

[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

Cette représentation visuelle est un excellent moyen de confirmer que nous avons créé tous les répertoires prévus avec la structure et les droits appropriés.

Cette étape conclut de manière satisfaisante notre atelier en nous permettant de contempler l'édifice que nous avons construit. La commande tree n'est pas seulement utile pour cet exercice, c'est un outil précieux pour naviguer et comprendre les structures de fichiers dans vos futurs projets Linux.

Résumé

Dans cet atelier, nous avons exploré la polyvalence de la commande mkdir sous Linux en simulant la création d'un jardin numérique. Nous avons appris à :

  1. Créer des répertoires uniques.
  2. Créer plusieurs répertoires simultanément.
  3. Créer des structures de répertoires imbriquées grâce à l'option -p.
  4. Définir des permissions spécifiques lors de la création avec l'option -m.
  5. Utiliser le mode verbeux -v pour obtenir un suivi détaillé.

Nous avons également vu comment combiner ces options pour réaliser des opérations plus complexes.

Bien que non abordés dans nos exercices, mkdir possède quelques paramètres supplémentaires utiles dans des contextes spécifiques :

  • -Z : Définit le contexte de sécurité SELinux du répertoire créé selon le type par défaut.
  • --context[=CTX] : Similaire à -Z, ou permet de spécifier explicitement le contexte de sécurité SELinux ou SMACK.
  • --help : Affiche le message d'aide et quitte.
  • --version : Affiche les informations de version et quitte.

Ces compétences sont fondamentales pour une organisation efficace du système de fichiers dans les environnements Linux. N'oubliez pas que, bien que nous nous soyons concentrés sur un scénario de jardin numérique, ces techniques s'appliquent à n'importe quelle situation nécessitant la gestion de structures de dossiers. Au fil de votre progression sur Linux, vous constaterez que mkdir est un outil indispensable pour organiser vos fichiers et vos projets.

Ressources complémentaires