Linux sans magie #3 — Fichiers et répertoires : créer, copier, déplacer et supprimer sans faire de bêtise

Apprendre à manipuler fichiers et répertoires sous Linux avec mkdir, touch, cp, mv et rm dans un lab isolé, avec vérifications et erreurs contrôlées.

Dans l’article précédent, nous avons appris à nous repérer dans Linux avec pwd, ls et cd.

Maintenant que nous savons où nous sommes, nous pouvons commencer à agir.

Créer un fichier. Créer un répertoire. Copier. Déplacer. Renommer. Supprimer.

Ce sont des opérations simples, mais ce sont aussi les premières commandes avec lesquelles on peut vraiment faire une erreur.

L’objectif de cet article n’est donc pas seulement d’apprendre touch, mkdir, cp, mv et rm.

Nous allons surtout apprendre une méthode :

observer → agir → vérifier

Et nous allons tout faire dans un petit espace de test isolé.

Objectif

À la fin de cet article, vous saurez :

  • créer un répertoire ;
  • créer un fichier vide ;
  • copier un fichier ;
  • renommer un fichier ;
  • déplacer un fichier ;
  • supprimer un fichier ;
  • supprimer un répertoire ;
  • reconnaître certaines erreurs courantes ;
  • vérifier systématiquement le résultat de vos commandes.

Et surtout, vous commencerez à comprendre pourquoi Linux peut être très efficace sans être dangereux… à condition de savoir où vous êtes et ce que vous ciblez.

Lab — Préparer un terrain de jeu

Nous allons travailler dans votre répertoire personnel.

Commencez par revenir chez vous :

cd

Vérifiez votre position :

pwd

Vous devriez obtenir quelque chose comme :

/home/alex

Créons maintenant un répertoire réservé à notre lab :

mkdir linux-sans-magie-lab

Puis entrons dedans :

cd linux-sans-magie-lab

Vérifiez :

pwd

Vous devriez maintenant être dans un chemin ressemblant à :

/home/alex/linux-sans-magie-lab

Enfin :

ls

Le répertoire devrait être vide.

Nous pouvons travailler ici sans toucher au reste de votre système.

Créer un répertoire avec mkdir

La commande :

mkdir projets

crée un nouveau répertoire nommé projets.

Vérifiez :

ls

Vous devriez voir :

projets

mkdir signifie make directory : crée un répertoire.

Vérifier que c’est bien un répertoire

Essayez :

ls -l

Vous pourriez obtenir :

drwxr-xr-x 2 alex alex 4096 Sep 5  projets

Le premier caractère est d. Il indique qu’il s’agit d’un directory, donc d’un répertoire.

Nous parlerons des permissions plus tard. Pour l’instant, retenez seulement qu’un fichier et un répertoire ne sont pas la même chose.

Créer un fichier avec touch

Entrons dans notre répertoire :

cd projets

Puis créons un fichier vide :

touch notes.txt

Vérifiez :

ls

Résultat attendu :

notes.txt

touch peut avoir plusieurs usages, mais ici nous l’utilisons simplement pour créer un fichier vide.

Essayez :

ls -l

Vous pourriez voir :

-rw-r--r-- 1 alex alex 0 Sep 5  notes.txt

Cette fois, la ligne ne commence pas par d. Nous avons bien affaire à un fichier. Sa taille est probablement 0 : nous n’avons encore rien écrit dedans.

Créer plusieurs fichiers

Essayez maintenant :

touch todo.txt
touch brouillon.txt

Puis :

ls

Vous devriez obtenir quelque chose comme :

brouillon.txt
notes.txt
todo.txt

Copier un fichier avec cp

Copions notes.txt :

cp notes.txt notes-copie.txt

Puis vérifiez :

ls

Vous devriez maintenant voir :

brouillon.txt
notes-copie.txt
notes.txt
todo.txt

cp signifie copy. La logique est généralement :

cp source destination

Dans notre exemple :

source      → notes.txt
destination → notes-copie.txt

Le fichier original existe toujours. Nous avons simplement créé une copie.

Renommer un fichier avec mv

Pour renommer un fichier, nous pouvons utiliser :

mv brouillon.txt rapport.txt

Puis :

ls

Vous devriez voir :

notes-copie.txt
notes.txt
rapport.txt
todo.txt

mv signifie move. Il peut servir à déplacer un fichier ou à le renommer.

En pratique, renommer un fichier revient à le déplacer vers un autre nom au même endroit.

Déplacer un fichier dans un autre répertoire

Créons un nouveau répertoire :

mkdir archives

Puis déplaçons rapport.txt :

mv rapport.txt archives/

Vérifiez :

ls
ls archives

rapport.txt ne doit plus apparaître dans le répertoire courant, mais doit être visible dans archives.

Une habitude importante : vérifier après mv

Une commande comme mv ne produit souvent aucun message lorsqu’elle réussit. Sous Linux, beaucoup de commandes suivent cette logique : pas de message signifie souvent pas d’erreur.

C’est pourquoi il faut vérifier le résultat avec ls.

Provoquer une erreur contrôlée

Essayons volontairement quelque chose d’impossible :

cp fichier-inexistant.txt copie.txt

Vous devriez obtenir un message ressemblant à :

cp: cannot stat 'fichier-inexistant.txt': No such file or directory

Le texte exact peut varier légèrement selon le système.

Quand cela arrive, vérifiez :

pwd
ls

Posez-vous deux questions : suis-je dans le bon répertoire ? Le nom du fichier est-il correct ?

Une erreur Linux est souvent une information exploitable.

Supprimer un fichier avec rm

Regardons d’abord les fichiers présents :

ls

Nous allons supprimer uniquement la copie :

rm notes-copie.txt

Puis vérifiez :

ls

notes-copie.txt ne devrait plus apparaître.

rm signifie remove. Contrairement à cp ou mv, la suppression n’est pas une simple réorganisation. Dans un terminal classique, le fichier n’est généralement pas déplacé dans une corbeille graphique.

Avant une suppression, prenez donc ce réflexe :

pwd
ls

Puis seulement :

rm fichier

Provoquer une deuxième erreur utile

Essayez maintenant :

rm archives

Vous devriez recevoir une erreur ressemblant à :

rm: cannot remove 'archives': Is a directory

Pourquoi ? Parce que archives est un répertoire, pas un fichier ordinaire.

Supprimer un répertoire vide

Créons un répertoire vide :

mkdir test-vide

Puis supprimons-le avec :

rmdir test-vide

rmdir signifie remove directory. Le répertoire doit être vide.

Essayons maintenant :

rmdir archives

Comme archives contient encore rapport.txt, vous devriez obtenir quelque chose ressemblant à :

rmdir: failed to remove 'archives': Directory not empty

Et rm -r ?

Vous verrez rapidement des commandes comme :

rm -r repertoire

L’option -r signifie ici que la suppression se fait récursivement : Linux entre dans le répertoire, supprime ce qu’il contient, puis supprime le répertoire lui-même.

C’est très pratique. C’est aussi une commande à utiliser avec attention.

Retenez la différence :

rm fichier        → supprime un fichier
rmdir repertoire  → supprime un répertoire vide
rm -r repertoire  → peut supprimer un répertoire et tout son contenu

Comprendre la notion de source et destination

Les commandes cp et mv utilisent très souvent cette logique :

commande source destination

Exemple :

cp notes.txt sauvegarde.txt

signifie : copier notes.txt vers sauvegarde.txt.

Et :

mv notes.txt archives/

signifie : déplacer notes.txt vers archives/.

Lorsque vous hésitez, relisez mentalement la commande de gauche à droite.

Lab — Construire une petite arborescence

Vérifiez d’abord où vous êtes :

pwd
ls

Créez deux répertoires :

mkdir docs
mkdir sauvegardes

Créez deux fichiers :

touch docs/guide.txt
touch docs/checklist.txt

Regardez le résultat :

ls docs

Vous devriez voir :

checklist.txt
guide.txt

Copiez maintenant guide.txt dans sauvegardes :

cp docs/guide.txt sauvegardes/

Vérifiez :

ls sauvegardes

Puis renommez la copie :

mv sauvegardes/guide.txt sauvegardes/guide-backup.txt

Et vérifiez à nouveau :

ls sauvegardes

Résultat attendu :

guide-backup.txt

Vous venez d’utiliser des chemins relatifs un peu plus intéressants. docs/guide.txt signifie : depuis l’endroit où je me trouve, entre dans docs et cible guide.txt.

Petit défi

Sans regarder immédiatement la solution, essayez de réaliser les opérations suivantes dans le lab :

  1. créez un répertoire atelier ;
  2. créez dedans un fichier original.txt ;
  3. créez un répertoire copies ;
  4. copiez original.txt vers copies ;
  5. renommez la copie en copie.txt ;
  6. vérifiez que les deux fichiers existent ;
  7. supprimez uniquement copie.txt ;
  8. vérifiez que original.txt existe toujours.

Une solution possible

mkdir atelier
touch atelier/original.txt
mkdir atelier/copies
cp atelier/original.txt atelier/copies/
mv atelier/copies/original.txt atelier/copies/copie.txt
ls atelier
ls atelier/copies
rm atelier/copies/copie.txt
ls atelier
ls atelier/copies

Le fichier atelier/original.txt doit toujours exister.

Nettoyage du lab

Nous avons volontairement travaillé dans un environnement isolé.

Revenons dans le répertoire personnel :

cd

Vérifiez :

pwd
ls

Assurez-vous que le répertoire linux-sans-magie-lab est bien celui créé pour cet exercice, puis supprimez tout le terrain d’exercice :

rm -r linux-sans-magie-lab

Puis vérifiez :

ls

Le répertoire ne doit plus apparaître.

Pourquoi rm -r était acceptable ici

Nous savions précisément où nous étions, quel répertoire nous supprimions, qu’il avait été créé uniquement pour ce lab et qu’il ne contenait rien d’important.

Nous n’avons donc pas utilisé rm -r au hasard : nous avons d’abord créé un environnement contrôlé, puis vérifié la cible.

Les cinq commandes à retenir

mkdir → créer un répertoire
touch → créer un fichier vide
cp    → copier
mv    → déplacer ou renommer
rm    → supprimer

Mais le plus important reste la boucle :

observer
agir
vérifier

Avant : où suis-je ? Qu’est-ce qu’il y a ici ?

Après : est-ce que le résultat correspond à ce que j’attendais ?

Références officielles

Les commandes pwd, ls, cp, mv, rm, mkdir, rmdir et touch font partie des utilitaires GNU Coreutils sur de nombreuses distributions Linux.

Vous pouvez consulter leur documentation directement depuis le terminal :

man cp
man mv
man rm
man mkdir
man touch

Référence officielle : GNU Coreutils manual.

Conclusion

Vous savez maintenant faire beaucoup plus que simplement vous déplacer dans Linux.

Vous pouvez créer une petite arborescence, y ajouter des fichiers, les copier, les déplacer, les renommer et les supprimer.

Mais le point le plus important n’est pas la syntaxe. C’est la méthode : observer → agir → vérifier.

Dans le prochain article de Linux sans magie, nous allons ouvrir une nouvelle porte essentielle : lire et modifier des fichiers texte sans quitter le terminal.