Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 8

Gestion des Fichiers et Dossiers (touch, mkdir, cp, mv, rm)

Recommended resources

Bonjour !

Dans la leçon précédente, vous avez appris à vous déplacer dans le système de fichiers de votre serveur Linux avec les commandes pwd, ls, et cd. Vous savez maintenant vous orienter, un peu comme un explorateur qui cartographie un nouveau territoire.

Aujourd'hui, nous allons passer de l'observation à l'action. L'objectif est d'apprendre à gérer les fichiers et les dossiers. Vous allez non seulement créer vos propres structures (dossiers), mais aussi les peupler (fichiers), les organiser et faire le ménage. Ces compétences sont au cœur du métier d'administrateur systèmes.

Nous aborderons les commandes suivantes, qui sont le B.A.-ba de la manipulation de fichiers :

  • mkdir : pour créer des répertoires (dossiers).
  • touch : pour créer des fichiers vides.
  • cp : pour copier des fichiers et des répertoires.
  • mv : pour déplacer et renommer des fichiers et des répertoires.
  • rm : pour supprimer des fichiers et des répertoires.

À la fin de cette leçon, vous serez capable de créer et d'organiser une arborescence de fichiers complète, une tâche que vous effectuerez quotidiennement.

1. Création de dossiers et de fichiers

Avant de pouvoir organiser quoi que ce soit, il faut d'abord créer les éléments à organiser. Nous allons commencer par les dossiers, puis les fichiers.

Créer des dossiers avec mkdir

La commande mkdir (de l'anglais make directory) sert à créer un ou plusieurs nouveaux répertoires. Sa syntaxe la plus simple est mkdir nom_du_dossier.

Ouvrez le terminal de votre machine virtuelle Ubuntu Server et placez-vous dans votre répertoire personnel avec la commande cd. Ensuite, créez un dossier nommé projets :

cd
mkdir projets

Utilisez ls pour vérifier que le dossier a bien été créé.

Une option très utile de mkdir est -p (pour parent). Elle permet de créer toute une arborescence de dossiers en une seule fois, même si les dossiers parents n'existent pas encore.

Creating Nested Directories with `mkdir -p` and Verifying with `tree` in Linux
Cette image montre comment `mkdir -p` crée une structure de répertoires imbriqués, confirmée ensuite par la commande `tree`. C'est un gain de temps considérable.

Par exemple, pour créer projets/site-web/images sans avoir à créer site-web d'abord, vous feriez :
mkdir -p projets/site-web/images

Créer des fichiers vides avec touch

La commande touch est le moyen le plus rapide de créer un fichier vide. Elle est très pratique pour créer la structure d'un projet avant d'y ajouter du contenu. Sa syntaxe est touch nom_du_fichier.

Entrez dans votre nouveau dossier projets et créez-y un fichier :

cd projets
touch README.md

Utilisez ls -l pour voir votre nouveau fichier. Notez que sa taille est de 0 octet.

Le nom touch vient de sa fonction principale, qui est de "toucher" un fichier pour mettre à jour sa date de dernière modification. S'il n'existe pas, la commande le crée.

Pour une description détaillée de ces deux commandes, vous pouvez consulter la documentation suivante.

Commandes Linux - Documentation

Ce document de référence pour Rocky Linux (une autre distribution Linux, mais les commandes sont identiques) explique clairement le fonctionnement de mkdir et touch.

Lisez les sections 'La commande mkdir' et 'La commande touch'. Notez particulièrement l'explication de l'option -p pour mkdir.


2. Copier, Déplacer et Renommer

Maintenant que vous avez des fichiers et des dossiers, voyons comment les manipuler.

Copier des fichiers et dossiers avec cp

La commande cp (de copy) sert à dupliquer des fichiers ou des dossiers. Sa syntaxe de base est cp source destination.

  1. Copier un fichier : Pour copier le fichier README.md en un nouveau fichier nommé NOTES.txt dans le même dossier :

    cp README.md NOTES.txt
    
  2. Copier un fichier dans un autre dossier : Créez un dossier backup et copiez-y NOTES.txt :

    mkdir backup
    cp NOTES.txt backup/
    
  3. Copier un dossier : Pour copier un dossier entier, vous devez utiliser l'option -r (ou -R), qui signifie récursif. Elle demande à cp de copier le dossier et tout ce qu'il contient.

    
    
    
    # Créez un dossier à copier
    mkdir -p site-web/css
    touch site-web/index.html
    touch site-web/css/style.css
    
    
    
    
    # Copiez-le
    cp -r site-web/ backup/
    

    Si vous vérifiez le contenu de backup, vous y trouverez maintenant une copie complète du dossier site-web.

Déplacer et Renommer avec mv

La commande mv (de move) a un double rôle très pratique : elle sert à la fois à déplacer des fichiers/dossiers et à les renommer. Le système interprète l'action en fonction du contexte.

  • Pour renommer : si la destination est un nouveau nom dans le même répertoire.
    mv ancien_nom nouveau_nom

    Renommons le fichier NOTES.txt en instructions.txt :

    mv NOTES.txt instructions.txt
    
  • Pour déplacer : si la destination est un dossier existant.
    mv fichier_ou_dossier dossier_destination/

    Déplaçons le fichier instructions.txt dans le dossier backup :

    mv instructions.txt backup/
    
mv Command in Linux: Move and Rename Files Tutorial
Cette image résume bien la double fonction de la commande `mv` : déplacer (move) et renommer (rename).

Contrairement à cp, mv n'a pas besoin de l'option -r pour déplacer un dossier entier.

La vidéo suivante montre des exemples pratiques de cp et mv.

L'invité de commandes Linux - Tutoriel pour débutants

Pour voir ces commandes en action, regardez cet extrait du tutoriel de MaxCode. Il montre comment dupliquer, renommer et déplacer des fichiers et des dossiers.

Regardez de 14:29 à 16:54. L'auteur y démontre l'utilisation de cp pour dupliquer un fichier et de mv pour le renommer puis le déplacer. Notez l'utilisation de la touche Tabulation pour l'auto-complétion, une habitude à prendre absolument !


3. La Suppression (avec prudence !)

Supprimer des fichiers est une tâche courante, mais qui demande de la vigilance. En ligne de commande, il n'y a généralement pas de corbeille ! Une suppression est définitive.

Supprimer des fichiers avec rm

La commande rm (de remove) supprime des fichiers.




# Allons dans le dossier projets/backup pour faire du ménage
cd backup




# Supprimons le fichier que nous avons déplacé
rm instructions.txt

Supprimer des dossiers

Il y a deux commandes pour cela :

  1. rmdir (remove directory) : Ne supprime que les répertoires vides. C'est une sécurité. Si vous essayez de l'utiliser sur un dossier non vide, elle renverra une erreur.

    
    
    
    # Essayons de supprimer le dossier site-web (copié précédemment)
    rmdir site-web  # Ceci va échouer car il n'est pas vide
    
  2. rm -r : Pour supprimer un répertoire et tout son contenu de manière récursive. C'est la méthode la plus courante, mais aussi la plus dangereuse.

    
    
    
    # Supprimons le dossier site-web et tout ce qu'il contient
    rm -r site-web
    

⚠️ Attention : soyez extrêmement prudent avec rm -r
Une commande comme rm -rf / (où -f signifie force, ignorant les avertissements) peut effacer l'intégralité de votre système de fichiers sans confirmation. Prenez toujours une seconde pour relire votre commande rm -r avant d'appuyer sur Entrée, surtout lorsque vous utilisez des chemins absolus ou le caractère * (wildcard).

La vidéo suivante explique bien la différence entre rmdir et rm -r.

Ubuntu - Linux : Gestion des fichiers avec la ligne de commandes

Cette vidéo de LinkedIn Learning montre la bonne façon de supprimer des fichiers et des dossiers, et met en évidence la différence cruciale entre rmdir et rm -r.

Regardez de 1:53 à 3:26. La démonstration illustre pourquoi rmdir échoue sur un dossier non vide et comment rm -r permet de contourner ce problème.


4. Mise en pratique

Mettons maintenant tout cela en pratique sur votre serveur. L'objectif est de créer une petite structure, de la manipuler, puis de la nettoyer. Assurez-vous d'être dans votre répertoire personnel (cd ~).

Exercice : Gérer un projet fictif

  1. Créez un répertoire entreprise. À l'intérieur, créez deux sous-répertoires : comptabilite et marketing.

    Solution `mkdir -p entreprise/comptabilite entreprise/marketing`
  2. Dans le dossier marketing, créez deux fichiers vides : campagne_ete.txt et logo.png.

    Solution `cd entreprise/marketing`
    `touch campagne_ete.txt logo.png`
  3. Le fichier logo.png est en fait un document de planification. Renommez-le en plan_media.docx.

    Solution `mv logo.png plan_media.docx`
  4. Créez une copie de plan_media.docx et nommez la copie plan_media_v2.docx.

    Solution `cp plan_media.docx plan_media_v2.docx`
  5. Le dossier comptabilite a aussi besoin de ces plans. Déplacez plan_media_v2.docx dans le dossier comptabilite.

    Solution `mv plan_media_v2.docx ../comptabilite/` (le `../` remonte au dossier parent `entreprise`).
  6. Vérifiez avec ls et ls ../comptabilite que vos fichiers sont au bon endroit.

  7. Finalement, le projet est terminé. Supprimez tout le dossier entreprise et son contenu en une seule commande depuis votre répertoire personnel.

    Solution `cd ~`
    `rm -r entreprise`

Conclusion

Félicitations ! Vous avez maintenant les compétences pour créer, organiser et supprimer des fichiers et des dossiers depuis la ligne de commande. C'est un pas de géant vers l'autonomie sur un système Linux.

Points clés à retenir :

  • Création : mkdir -p pour les arborescences de dossiers, touch pour les fichiers vides.
  • Copie : cp pour les fichiers, mais cp -r est indispensable pour copier des dossiers.
  • Déplacement/Renommage : mv est votre couteau suisse pour ces deux tâches.
  • Suppression : rm pour les fichiers, rmdir pour les dossiers vides, et rm -r pour tout supprimer.
  • La Prudence est Mère de Sûreté : La commande rm est irréversible. Vérifiez toujours avant de valider.

Vous savez maintenant naviguer et manipuler la structure du système de fichiers.

Dans la prochaine leçon, nous irons un cran plus loin en apprenant à consulter le contenu des fichiers directement depuis le terminal avec des commandes comme cat, less, head, et tail. Vous n'aurez plus besoin d'un éditeur graphique pour lire un fichier de configuration ou un journal d'événements.