Opérations de base sur les fichiers

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans cet atelier consacré aux opérations de base sur les fichiers sous Linux ! Dans l'univers Linux, presque tout est considéré comme un fichier, ce qui rend la manipulation de ces derniers fondamentale pour maîtriser le système. Cet atelier vous guidera à travers les commandes les plus courantes pour gérer vos fichiers et répertoires, vous aidant ainsi à devenir plus agile dans la navigation et l'organisation de votre environnement Linux.

Comprendre votre environnement de travail

Sous Linux, chaque utilisateur possède généralement un « répertoire personnel » (home directory), représenté par le symbole ~. Cependant, dans cet environnement d'expérimentation, nous commencerons dans le répertoire /home/labex/project, qui est notre répertoire de travail par défaut.

Tout d'abord, veuillez ouvrir un terminal sur le Bureau OU basculer vers l'onglet terminal de l'interface de l'atelier.

Capture d'écran de l'interface du terminal

Commençons par identifier notre emplacement actuel :

pwd

pwd signifie « print working directory » (afficher le répertoire de travail). Cette commande affiche votre position exacte dans l'arborescence des fichiers. Elle est indispensable pour s'orienter dans la structure Linux. Vous devriez voir /home/labex/project s'afficher.

Explorons maintenant la relation entre le répertoire courant et le répertoire personnel :

echo ~

Note : Si vous ne parvenez pas à saisir le symbole ~ dans le terminal du Bureau en raison de la configuration de votre clavier, vous pouvez essayer de passer à l'onglet Terminal indépendant situé en haut à gauche de l'interface de la machine virtuelle.

Cette commande affichera le chemin vers votre répertoire personnel, qui devrait être /home/labex.

Pour visualiser le contenu de votre répertoire actuel, utilisez :

ls

Cela listera les fichiers et dossiers présents dans votre répertoire de travail actuel (/home/labex/project).

Vérifions également le contenu de votre répertoire personnel :

ls ~

Cette commande liste le contenu de votre « home », qui peut différer de votre répertoire de travail actuel.

Bien saisir la distinction entre votre répertoire de travail actuel et votre répertoire personnel est essentiel pour naviguer efficacement dans le système de fichiers Linux.

Linux utilise ce que l'on appelle un « système de fichiers hiérarchique ». Imaginez cela comme un grand arbre avec des branches. Le tronc principal est appelé le « répertoire racine » (root), représenté par une simple barre oblique /. Tous les autres répertoires et fichiers partent de cette racine.

Voyons comment se déplacer dans cette structure :

  1. Vérifiez votre emplacement actuel :
pwd

Le résultat devrait être /home/labex/project. Si ce n'est pas le cas, vous êtes peut-être dans un autre dossier. Utilisez cd /home/labex/project pour revenir au point de départ.

  1. Affichez le contenu de votre répertoire actuel :
ls

Cela liste tous les fichiers et dossiers là où vous vous trouvez. Le dossier /home/labex/project est vide pour l'instant, donc rien ne s'affichera.

  1. Remontez d'un niveau vers le répertoire parent :
cd ..

Le symbole .. signifie « le répertoire situé juste au-dessus ». Après cette commande, tapez à nouveau pwd. Vous devriez maintenant être dans /home/labex.

  1. Revenez à votre répertoire de projet :
cd project

Cela vous ramène dans /home/labex/project.

  1. Allez directement à votre répertoire personnel :
cd ~

Le ~ est un raccourci pour votre répertoire personnel. Tapez pwd pour confirmer que vous êtes bien dans /home/labex.

  1. Revenez au répertoire de projet en utilisant un chemin absolu :
cd /home/labex/project

On parle de « chemin absolu » car il part de la racine (/) et donne l'emplacement complet.

Créer des fichiers et lister le contenu des répertoires

Maintenant que nous savons nous déplacer, créons quelques fichiers et explorons les options d'affichage.

D'abord, assurez-vous d'être dans le répertoire /home/labex/project :

cd /home/labex/project
  1. Créons quelques fichiers :
touch file1.txt

La commande touch est utilisée pour créer un fichier vide. Si le fichier existe déjà, elle met à jour sa date de modification sans changer son contenu. C'est un moyen simple de créer de nouveaux fichiers vides.

echo "Hello, Linux" > file2.txt

Cette commande effectue deux actions :

  • echo est une commande qui affiche du texte.
  • Le symbole > redirige la sortie de echo vers un fichier nommé file2.txt. Si le fichier n'existe pas, il est créé. S'il existe, son contenu est remplacé.
echo "Hidden file" > .hiddenfile

Ceci crée un fichier caché. Sous Linux, tout fichier ou répertoire dont le nom commence par un point (.) est considéré comme masqué.

  1. Créons maintenant un répertoire :
mkdir testdir

La commande mkdir (abréviation de « make directory ») crée un nouveau dossier nommé testdir.

  1. Liste simple :
ls

Résultat du listage du contenu du répertoire

Cela affiche le contenu de votre répertoire actuel. Vous devriez voir file1.txt, file2.txt et testdir.

  1. Liste détaillée :
ls -l

L'option -l (un L minuscule, pas le chiffre 1) affiche un format « long ». Vous verrez des détails supplémentaires comme les permissions, le propriétaire, la taille et la date de modification.

  1. Afficher les fichiers cachés :
ls -a

Cela affichera tous les fichiers, y compris le fichier caché .hiddenfile que nous avons créé.

  1. Combiner les options :
ls -la

Ceci combine le format long (-l) et l'affichage de tous les fichiers (-a).

  1. Lister le contenu d'un répertoire spécifique :
ls -l testdir

Cela liste le contenu du dossier testdir (qui devrait être vide pour le moment).

Copier des fichiers et des répertoires

Maintenant que nous avons des fichiers, apprenons à les copier :

  1. Copier un fichier :
cp file1.txt file1_copy.txt

Ceci crée une copie de file1.txt nommée file1_copy.txt dans le répertoire actuel.

Vérifions la copie :

ls
  1. Copier un fichier vers un autre répertoire :
cp file2.txt testdir/

Ceci copie file2.txt à l'intérieur du répertoire testdir.

  1. Copier un répertoire :
cp -r testdir testdir_copy

L'option -r signifie « récursif ». Elle est indispensable pour copier des répertoires afin de s'assurer que tout leur contenu est également copié.

  1. Vérifier nos copies :
ls
ls testdir
ls testdir_copy

Terminal affichant les fichiers copiés

Déplacer et renommer des fichiers et des répertoires

La commande mv est utilisée à la fois pour déplacer et pour renommer sous Linux :

  1. Renommer un fichier :
mv file1.txt newname.txt

Ceci renomme file1.txt en newname.txt.

  1. Déplacer un fichier vers un répertoire :
mv newname.txt testdir/

Ceci déplace newname.txt dans le répertoire testdir.

  1. Renommer un répertoire :
mv testdir_copy new_testdir

Ceci renomme testdir_copy en new_testdir.

  1. Déplacer et renommer en une seule commande :
mv testdir/newname.txt ./original_file1.txt

Ceci sort newname.txt de testdir et le renomme en original_file1.txt dans le répertoire actuel.

  1. Vérifier nos modifications :
ls
ls testdir

Affichage des résultats d'exécution des commandes

Supprimer des fichiers et des répertoires

La suppression de fichiers et de répertoires est une opération puissante. Contrairement aux interfaces graphiques, la ligne de commande ne possède souvent pas de « Corbeille ». Les suppressions effectuées avec rm sont généralement définitives. Vérifiez toujours vos commandes avant de les valider !

Nettoyons les fichiers et répertoires que nous avons créés. Assurez-vous d'être dans le répertoire /home/labex/project.

pwd
ls -a

Vous devriez voir des fichiers comme original_file1.txt, .hiddenfile, file2.txt, et des répertoires comme testdir, new_testdir.

-rw-rw-r-- 1 labex labex   12 May  3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex    0 May  3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex   13 May  3 08:44 file2.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 new_testdir
-rw-rw-r-- 1 labex labex    0 May  3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex   23 May  3 08:45 testdir
  1. Supprimer un seul fichier :

    rm original_file1.txt
    

    La commande rm (abréviation de « remove ») supprime les fichiers. Vérifions :

    ls
    

    original_file1.txt devrait avoir disparu.

  2. Supprimer de manière interactive (plus sûr) :

    Essayons de supprimer file2.txt, mais cette fois en utilisant l'option interactive -i :

    rm -i file2.txt
    

    L'option -i vous demande une confirmation avant de supprimer chaque fichier. Tapez y (pour yes/oui) et appuyez sur Entrée pour confirmer. Si vous tapez n ou n'importe quoi d'autre, le fichier ne sera pas supprimé.

    ls
    

    Si vous avez confirmé, file2.txt ne sera plus là.

  3. Supprimer un répertoire vide :

    Vous souvenez-vous de new_testdir créé en renommant testdir_copy ? Vérifions s'il est vide :

    ls new_testdir
    

    S'il est vide (aucun fichier affiché), nous pouvons le supprimer avec rmdir :

    rmdir new_testdir
    

    rmdir (remove directory) ne fonctionne que sur les répertoires vides.

    ls
    

    new_testdir a été supprimé.

  4. Tenter de supprimer un répertoire non vide :

    Maintenant, essayons rmdir sur testdir, qui contient encore file2.txt (copié à l'étape 4) :

    ls testdir
    rmdir testdir
    

    Vous verrez probablement un message d'erreur du type rmdir: failed to remove 'testdir': Directory not empty. C'est normal car rmdir ne peut pas supprimer des dossiers contenant des fichiers ou d'autres dossiers.

  5. Supprimer un répertoire et son contenu (récursivement) :

    Pour supprimer un répertoire qui n'est pas vide, nous devons utiliser rm avec l'option -r (récursive) :

    rm -r testdir
    

    Cette commande supprime le répertoire testdir ainsi que tout ce qu'il contient. Utilisez cette commande avec une grande prudence.

    ls
    

    testdir devrait maintenant avoir disparu.

  6. Forcer la suppression (à utiliser avec une extrême prudence) :

    Parfois, vous voudrez supprimer des fichiers sans confirmation, même s'ils sont protégés en écriture (bien que ce ne soit pas le cas ici). L'option -f (force) permet cela.

    Supprimons notre fichier caché :

    rm .hiddenfile
    ls -a
    

    Maintenant, combinons -r et -f. La commande rm -rf est extrêmement puissante et potentiellement dangereuse. Elle supprime les répertoires de manière récursive (-r) et force la suppression sans aucune demande de confirmation (-f).

    !!! ZONE DE DANGER !!! Soyez ABSOLUMENT CERTAIN de ce que vous supprimez avant de lancer rm -rf. Une simple faute de frappe pourrait supprimer des fichiers système critiques ou vos données personnelles. Il n'y a pas de fonction « annuler ». Par exemple, rm -rf / pourrait tenter de supprimer l'intégralité de votre système (si vous en avez les droits). Vérifiez toujours deux fois le chemin indiqué.

    Créons un répertoire et un fichier temporaires pour faire une démonstration (en toute sécurité) :

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Note : Vous remarquerez que nous avons utilisé -R (majuscule) avec ls au lieu de -r (minuscule) comme pour cp et rm. Ce n'est pas juste une question de casse : ce sont des options totalement différentes ! Pour ls, -R signifie « affichage récursif » (lister les sous-répertoires), alors que -r signifie « trier dans l'ordre inverse ». Pour cp et rm, l'option récursive est bien -r (minuscule). Consultez toujours le manuel (man commande) pour comprendre les options spécifiques de chaque commande.

    Maintenant, supprimons-le de force :

    rm -rf temp_dir
    

    Vérifiez la suppression :

    ls
    

    temp_dir a disparu.

Rappelez-vous : dans la ligne de commande Linux, les fichiers supprimés sont généralement perdus pour toujours. Utilisez rm avec discernement !

Résumé

Félicitations ! Vous avez appris les opérations essentielles sur les fichiers sous Linux :

  • Naviguer dans le système de fichiers avec cd et pwd
  • Créer des fichiers et des répertoires avec touch et mkdir
  • Lister le contenu avec ls et ses options
  • Copier des fichiers et des répertoires avec cp
  • Déplacer et renommer avec mv
  • Supprimer des fichiers et des répertoires avec rm et rmdir

Ces commandes constituent le socle de la gestion de fichiers sous Linux. Avec de la pratique, vous deviendrez expert dans la gestion de vos fichiers et dossiers depuis le terminal.

N'oubliez pas d'utiliser ces commandes avec précaution, en particulier rm, car elle supprime définitivement les éléments sans possibilité de récupération simple.

Pour poursuivre votre apprentissage de Linux, n'hésitez pas à explorer les pages de manuel (par exemple, man ls) pour en savoir plus sur chaque commande et ses options. Bonne exploration !