Linux Professional Institute Learning Logo.
Passer au contenu principal
  • Accueil
    • Toutes les ressources
    • Supports de Cours LPI
    • Devenez contributeur
    • Publishing Partners
    • Devenez Partenaire de Publication
    • À propos
    • FAQ
    • Contributeurs
    • Feuille de route
    • Contactez-nous
  • LPI.org
103.3 Leçon 1
Thème 101 : Architecture système
101.1 Détermination et configuration des paramètres du matériel
  • 101.1 Leçon 1
101.2 Démarrage du système
  • 101.2 Leçon 1
101.3 Change runlevels / boot targets and shutdown or reboot system
  • 101.3 Leçon 1
Thème 102 : Installation de Linux et gestion de paquetages
102.1 Conception du schéma de partitionnement
  • 102.1 Leçon 1
102.2 Installation d'un gestionnaire d'amorçage
  • 102.2 Leçon 1
102.3 Gestion des bibliothèques partagées
  • 102.3 Leçon 1
102.4 Utilisation du gestionnaire de paquetage Debian
  • 102.4 Leçon 1
102.5 Utilisation des gestionnaires de paquetage RPM et YUM
  • 102.5 Leçon 1
102.6 Linux en tant que système virtuel hébergé
  • 102.6 Leçon 1
Thème 103 : Commandes GNU et Unix
103.1 Travail en ligne de commande
  • 103.1 Leçon 1
  • 103.1 Leçon 2
103.2 Traitement de flux de type texte avec des filtres
  • 103.2 Leçon 1
103.3 Gestion élémentaire des fichiers
  • 103.3 Leçon 1
  • 103.3 Leçon 2
103.4 Utilisation des flux, des tubes et des redirections
  • Prochainement...
103.5 Création, contrôle et interruption des processus
  • Prochainement...
103.6 Modification des priorités des processus
  • Prochainement...
103.7 Recherche dans des fichiers texte avec les expressions rationnelles
  • Prochainement...
103.8 Édition de fichier simple
  • Prochainement...
Thème 104 : Disques, systèmes de fichiers Linux , arborescence de fichiers standard (FHS)
104.1 Création des partitions et des systèmes de fichiers
  • Prochainement...
104.2 Maintenance de l'intégrité des systèmes de fichiers
  • Prochainement...
104.3 Montage et démontage des systèmes de fichiers
  • Prochainement...
104.5 Gestion des permissions et de la propriété sur les fichiers
  • Prochainement...
104.6 Création et modification des liens physiques et symboliques sur les fichiers
  • Prochainement...
104.7 Recherche de fichiers et placement des fichiers aux endroits adéquats
  • Prochainement...
How to get certified
  1. Thème 103 : Commandes GNU et Unix
  2. 103.3 Gestion élémentaire des fichiers
  3. 103.3 Leçon 1

103.3 Leçon 1

Certification :

LPIC-1

Version :

5.0

Thème :

103 Commandes GNU et Unix

Objectif :

103.3 Gestion élémentaire des fichiers

Leçon :

1 sur 2

Introduction

Tout est fichier sous Linux, il est donc très important de savoir comment les manipuler. Dans cette leçon, nous allons aborder les opérations de base sur les fichiers.

En règle générale, un utilisateur de Linux sera amené à naviguer dans le système de fichiers, à copier des fichiers d’un emplacement vers un autre et à supprimer des fichiers. Nous verrons également les commandes liées à la gestion des fichiers.

Un fichier est une entité qui contient des données et des programmes. Il est constitué du contenu à proprement parler et des métadonnées (taille du fichier, propriétaire, date de création, permissions). Les fichiers sont organisés en répertoires. Un répertoire est un fichier qui contient d’autres fichiers.

Les différents types de fichiers comprennent :

Les fichiers normaux

qui stockent les données et les programmes.

Les répertoires

qui contiennent d’autres fichiers.

Les fichiers spéciaux

qui sont utilisés pour les entrées et les sorties.

Bien entendu, d’autres types de fichiers existent, mais ils dépassent le cadre de cette leçon. Nous verrons plus tard comment identifier ces différents types de fichiers.

Manipuler les fichiers

Afficher les fichiers avec ls

La commande ls fait partie des principaux outils en ligne de commande que vous devez apprendre pour naviguer dans le système de fichiers.

Dans son fonctionnement de base, ls affiche uniquement les noms des fichiers et des répertoires :

$ ls
Desktop Downloads   emp_salary  file1   Music   Public  Videos
Documents   emp_name    examples.desktop    file2   Pictures    Templates

L’option -l désigne le format d’affichage long et nous détaille les permissions des fichiers et des répertoires, le propriétaire, la taille, la date et l’heure de dernière modification ainsi que le nom :

$ ls -l
total 60
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8980    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4096    Apr 1   2018    Videos

Le tout premier caractère de la liste nous renseigne sur le type des fichiers :

-

pour un fichier normal.

d

pour un répertoire.

c

pour un fichier spécial.

Pour afficher la taille des fichiers dans un format humainement lisible, ajoutez l’option -h :

$ ls -lh
total 60K
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
-rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
-rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
-rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
-rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos

Pour afficher tous les fichiers, y compris les fichiers cachés (ceux qui commencent par .), utilisez l’option -a :

$ ls -a
.               .dbus   file1   .profile
..              Desktop file2   Public
.bash_history   .dmrc  .gconf  .sudo_as_admin_successful

Les fichiers de configuration comme .bash_history qui sont masqués par défaut sont maintenant visibles.

En règle générale, la syntaxe de la commande ls suit le schéma :

ls OPTIONS FILE

Où OPTIONS correspond à l’une des options présentées ci-dessus (pour afficher toutes les options possibles, invoquez man ls), et FILE est le nom du fichier ou du répertoire dont vous souhaitez obtenir les informations.

Note

Lorsque FILE n’est pas spécifié, c’est le répertoire courant qui est utilisé.

Créer, copier, déplacer et supprimer des fichiers

Créer des fichiers avec touch

La commande touch est le moyen le plus simple de créer de nouveaux fichiers vides. Vous pouvez également l’utiliser pour modifier l’horodatage (c’est-à-dire la date et l’heure de la dernière modification) des fichiers et des répertoires existants. La syntaxe pour utiliser touch est :

touch OPTIONS FILE_NAME(S)

Invoqué sans option, touch va créer des fichiers pour tous les noms de fichiers fournis en argument, à condition que ces fichiers n’existent pas déjà. touch peut créer plusieurs fichiers simultanément :

$ touch file1 file2 file3

La commande ci-dessus crée trois nouveaux fichiers vides nommés respectivement file1, file2 et file3.

Certaines options de touch sont spécialement conçues pour permettre à l’utilisateur de modifier les horodatages des fichiers. À titre d’exemple, l’option -a ne modifie que l’horodatage d’accès, tandis que l’option -m ne change que l’horodatage de modification. Invoquées conjointement, les deux options modifient l’horodatage d’accès et de modification en fonction de l’heure actuelle :

$ touch -am file3
Copier des fichiers avec cp

Un utilisateur de Linux est souvent amené à copier des fichiers d’un endroit vers un autre. Qu’il s’agisse de déplacer un fichier audio d’un répertoire vers un autre ou un fichier système, utilisez cp pour toutes les opérations de copie :

$ cp file1 dir2

Cette commande peut être littéralement interprétée comme copier file1 dans le répertoire dir2. Il en résulte la présence de file1 dans dir2. Pour que cette commande soit exécutée avec succès, file1 doit exister dans le répertoire courant de l’utilisateur. Dans le cas contraire, le système affiche le message d’erreur No such file or directory.

$ cp dir1/file1 dir2

Dans ce cas, observez que le chemin vers file1 est plus explicite. Le chemin de la source peut être indiqué sous forme de chemin relatif ou absolu. Les chemins relatifs sont indiqués en référence à un répertoire spécifique, tandis que les chemins absolus ne sont pas indiqués avec une référence. Nous allons préciser cette notion un peu plus loin.

Pour l’instant, notez simplement que la commande copie file1 dans le répertoire dir2. Le chemin vers file1 est fourni avec plus de précision puisque l’utilisateur ne se trouve pas actuellement dans dir1.

$ cp /home/frank/Documents/file2 /home/frank/Documents/Backup

Dans ce troisième figure, le fichier file2 rangé dans /home/frank/Documents est copié vers le répertoire /home/frank/Documents/Backup. Le chemin de la source fourni en argument ici est absolu. Dans les deux exemples précédents, les chemins des sources sont relatifs. Lorsqu’un chemin commence par le caractère /, c’est un chemin absolu, sinon c’est un chemin relatif.

La syntaxe générale de cp est :

cp OPTIONS SOURCE DESTINATION

SOURCE est le fichier à copier et DESTINATION le répertoire vers lequel le fichier devra être copié. SOURCE et DESTINATION peuvent être spécifiés comme des chemins absolus ou relatifs.

Déplacer des fichiers avec mv

Tout comme cp pour la copie, Linux fournit une commande pour déplacer et renommer des fichiers. Elle s’appelle mv.

L’opération de déplacement est analogue à l’opération couper-coller que vous pouvez effectuer dans une interface graphique (GUI).

Si vous souhaitez déplacer un fichier vers un nouvel emplacement, utilisez mv de la manière suivante :

mv FILENAME DESTINATION_DIRECTORY

Voici un exemple :

$ mv myfile.txt /home/frank/Documents

Il en résulte que myfile.txt est déplacé vers la destination /home/frank/Documents.

Pour renommer un fichier, on utilise mv de la manière suivante :

$ mv old_file_name new_file_name

Cette opération change le nom du fichier de old_file_name en new_file_name.

Dans la configuration par défaut, mv ne vous demandera pas de confirmer si vous souhaitez écraser (renommer) un fichier existant. Vous pouvez toutefois faire en sorte que le système vous affiche une demande de confirmation, en utilisant l’option -i :

$ mv -i old_file_name new_file_name
mv: overwrite 'new_file_name'?

Cette commande demanderait la permission de l’utilisateur avant d’écraser old_file_name et le remplacer par new_file_name.

Inversement, utilisez l’option -f:

$ mv -f old_file_name new_file_name

pour forcer l’écrasement du fichier sans afficher une demande de confirmation.

Supprimer des fichiers avec rm

rm est utilisé pour supprimer des fichiers. Pensez-y comme une forme abrégée du mot “remove”. Notez que la suppression d’un fichier est généralement irréversible et que cette commande doit donc être utilisée avec précaution.

$ rm file1

Cette commande supprimerait file1.

$ rm -i file1
rm: remove regular file 'file1'?

Cette commande demanderait confirmation à l’utilisateur avant de supprimer file1. Souvenez-vous, nous venons de voir l’option -i en utilisant mv ci-dessus.

$ rm -f file1

Cette commande force la suppression de file1 sans vous demander la moindre confirmation.

Plusieurs fichiers peuvent être supprimés en même temps :

$ rm file1 file2 file3

Dans cet exemple, file1, file2 et file3 sont supprimés simultanément.

La syntaxe de rm est généralement donnée par :

rm OPTIONS FILE

Créer et supprimer des répertoires

Créer des répertoires avec mkdir

Créer des répertoires est essentiel pour organiser vos fichiers et vos dossiers. Les fichiers pourront être regroupés de manière cohérente en les rangeant dans un répertoire. Pour créer un répertoire, utilisez mkdir :

mkdir OPTIONS DIRECTORY_NAME

Ici, DIRECTORY_NAME est le nom du répertoire à créer. Vous pouvez créer plusieurs répertoires d’une traite :

$ mkdir dir1

crée le répertoire dir1 dans le répertoire courant de l’utilisateur.

$ mkdir dir1 dir2 dir3

La commande précédente permet de créer trois répertoires dir1, dir2 et dir3 en même temps.

Pour créer un répertoire avec ses sous-répertoires, utilisez l’option -p (“parents”) :

$ mkdir -p parents/children

Cette commande crée la structure de répertoires parents/children, c’est-à-dire qu’elle crée les répertoires parents et children. children sera situé à l’intérieur de parents.

Supprimer des répertoires avec rmdir

rmdir supprime un répertoire s’il est vide. Sa syntaxe est définie ainsi :

rmdir OPTIONS DIRECTORY

Ici, DIRECTORY peut être un argument unique ou une liste d’arguments.

$ rmdir dir1

Cette commande supprimerait dir1.

$ rmdir dir1 dir2

Cette commande supprimerait simultanément dir1 et dir2.

Vous pouvez très bien supprimer un répertoire avec son sous-répertoire :

$ rmdir -p parents/children

Cela supprimera la structure de répertoires parents/children. Notez que si l’un des répertoires n’est pas vide, ils ne seront pas supprimés.

Gestion récursive des fichiers et des répertoires

Pour manipuler un répertoire et son contenu, vous devez appliquer la récursion. La récursion signifie qu’il faut effectuer une action et la répéter tout le long de l’arborescence des répertoires. Sous Linux, les options -r ou -R ou --recursive sont généralement associées à la récursion.

Le cas de figure suivant vous aidera à mieux comprendre la récursion :

Vous affichez le contenu d’un répertoire students, qui contient deux sous-répertoires level 1 et level 2 ainsi que le fichier nommé frank. En appliquant la récursion, la commande ls affichera le contenu de students, c’est-à-dire level 1, level 2 et frank, mais elle ne s’arrêtera pas là. Elle entrera également dans les sous-répertoires level 1 et level 2 et affichera leur contenu, et ainsi de suite dans l’arborescence des répertoires.

Affichage récursif avec ls -R

ls -R est utilisé pour afficher le contenu d’un répertoire avec ses sous-répertoires et ses fichiers.

$ ls -R mydirectory
mydirectory/:
file1   newdirectory

mydirectory/newdirectory:

Dans l’exemple ci-dessus, mydirectory ainsi que tout son contenu sont affichés. Vous pouvez observer que mydirectory contient le sous-répertoire newdirectory ainsi que le fichier file1. newdirectory est vide, c’est pourquoi aucun contenu n’est affiché.

En règle générale, pour afficher le contenu d’un répertoire avec tous ses sous-répertoires, utilisez :

ls -R DIRECTORY_NAME

L’ajout d’une barre oblique finale à DIRECTORY_NAME n’a aucun effet :

$ ls -R animal

équivaut à

$ ls -R animal/

Copie récursive avec cp -r

cp -r (ou -R ou --recursive) vous permet de copier un répertoire avec tous ses sous-répertoires et tous ses fichiers.

$ tree mydir
mydir
|_file1
|_newdir
    |_file2
    |_insidenew
        |_lastdir


3 directories, 2 files
$ mkdir newcopy
$ cp mydir newcopy
cp: omitting directory 'mydir'
$ cp -r mydir newcopy
* tree newcopy
newcopy
|_mydir
    |_file1
    |_newdir
        |_file2
        |_insidenew
            |_lastdir

4 directories, 2 files

Dans l’exemple ci-dessus, nous constatons qu’en essayant de copier mydir dans newcopy en utilisant cp sans -r, le système affiche le message cp : omitting directory 'mydir' (omission du répertoire 'mydir'). En revanche, en ajoutant l’option -r, tout le contenu de mydir, y compris le répertoire lui-même, est copié vers newcopy.

Pour copier les répertoires et sous-répertoires, utilisez :

cp -r SOURCE DESTINATION

Suppression récursive avec rm -r

rm -r va supprimer un répertoire et tout son contenu (sous-répertoires et fichiers).

Warning

Soyez très vigilants avec l’option -r et les options combinées -rf lorsqu’elles sont utilisées conjointement avec la commande rm. Une commande de suppression récursive sur un répertoire système important pourrait rendre le système inutilisable. Utilisez la commande de suppression récursive uniquement lorsque vous êtes absolument certain que le contenu d’un répertoire peut être supprimé sans danger de l’ordinateur.

Lorsqu’on essaie de supprimer un répertoire sans utiliser l’option -r, le système affiche une erreur :

$ rm newcopy/
rm: cannot remove 'newcopy/': Is a directory
$ rm -r newcopy/

Il vous faut ajouter l’option -r comme dans le deuxième exemple pour que la suppression soit prise en compte.

Note

Vous vous demandez peut-être pourquoi nous n’utilisons pas rmdir dans ce cas. Il y a une différence subtile entre les deux commandes. rmdir ne réussira à effectuer une suppression que si le répertoire donné est vide alors que rm -r peut être utilisé indépendamment du fait que le répertoire soit vide ou non.

Ajouter l’option -i pour obtenir une confirmation avant la suppression du répertoire :

$ rm -ri mydir/
rm: remove directory 'mydir/'?

Le système demande une confirmation avant d’essayer de supprimer mydir.

Filtres sur les fichiers et caractères de substitution

Le globbing de fichiers est une fonctionnalité fournie par l’interpréteur de commandes Unix/Linux pour représenter plusieurs noms de fichiers en utilisant des caractères de substitution appelés jokers. Les caractères de substitution sont essentiellement des symboles qui peuvent être utilisés pour remplacer un ou plusieurs caractères. Ils permettent, par exemple, d’afficher tous les fichiers qui commencent par la lettre A ou alors tous ceux qui se terminent par les lettres .conf.

Les caractères de substitution sont très utiles car ils peuvent être utilisés avec des commandes telles que cp, ls ou rm.

Voici quelques exemples de filtres sur les fichiers (globbing) :

rm *

Supprimer tous les fichiers du répertoire courant.

ls l?st

Afficher tous les fichiers dont le nom commence par l suivi d’un caractère unique quelconque et qui se termine par st.

rmdir [a-z]*

Supprimer tous les répertoires dont le nom commence par une lettre.

Types de caractères de substitution

Il y a trois caractères qui peuvent être utilisés comme jokers sous Linux :

* (astérisque)

qui représente zéro, une ou plusieurs occurrences d’un caractère quelconque.

? (point d’interrogation)

qui représente une seule occurrence de n’importe quel caractère.

[ ] (caractères entre crochets)

qui représente toute occurrence du ou des caractères contenus dans les crochets. Il est possible d’utiliser différents types de caractères, qu’il s’agisse de chiffres, de lettres ou d’autres caractères spéciaux. Par exemple, l’expression [0-9] correspond à tous les chiffres.

L’astérisque

Un astérisque (*) correspond à zéro, une ou plusieurs occurrences de n’importe quel caractère.

Par exemple :

$ find /home -name *.png

Cette commande trouverait tous les fichiers qui se terminent par .png tels que photo.png, cat.png ou frank.png. La commande find sera abordée plus en détail dans une leçon ultérieure.

De même :

$ ls lpic-*.txt

affichera tous les fichiers texte commençant par les caractères lpic- suivis d’un nombre quelconque de caractères et se terminant par .txt, tels que lpic-1.txt et lpic-2.txt.

Le caractère de substitution astérisque peut être utilisé pour manipuler (copier, supprimer ou déplacer) tout le contenu d’un répertoire :

$ cp -r animal/* forest

Dans cet exemple, tout le contenu de animal est copié vers forest.

En règle générale, pour copier tout le contenu d’un répertoire, on utilisera :

cp -r SOURCE_PATH/* DEST_PATH

où SOURCE_PATH peut être omis si nous nous trouvons déjà dans le répertoire en question.

L’astérisque, comme n’importe quel autre caractère de substitution, peut être utilisé plusieurs fois dans la même commande et à n’importe quelle position :

$ rm *ate* 

Les fichiers dont le nom est préfixé par zéro, une ou plusieurs occurrences d’un caractère quelconque, suivis des lettres ate et se terminant par zéro, une ou plusieurs occurrences d’un caractère quelconque seront supprimés.

Le point d’interrogation

Le point d’interrogation (?) correspond à une seule occurrence d’un caractère.

Considérez la liste de fichiers suivante :

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt

Pour afficher uniquement les fichiers dont le nom commence par l suivi d’un caractère unique et des caractères st.txt, nous utilisons le point d’interrogation (?) comme caractère de substitution :

$ ls l?st.txt
last.txt    lest.txt    list.txt

Seuls les fichiers last.txt, lest.txt et list.txt sont affichés car ils correspondent aux critères donnés.

De même,

$ ls ??st.txt
last.txt    lest.txt    list.txt    past.txt

affiche les fichiers préfixés de deux caractères quelconques suivis de st.txt.

Les caractères entre crochets

Les caractères de substitution entre crochets correspondent à n’importe quelle occurrence du ou des caractères placés entre les crochets :

$ ls l[aef]st.txt
last.txt    lest.txt

Cette commande affichera la liste de tous les fichiers dont le nom commence par l suivi de n’importe quel caractère de la série aef et qui se termine par st.txt.

Les crochets peuvent également correspondre à des intervalles :

$ ls l[a-z]st.txt
last.txt    lest.txt    list.txt

Cette commande affiche tous les fichiers dont le nom commence par l suivi d’une lettre minuscule comprise entre a et z et qui se termine par st.txt.

Les séries d’intervalles peuvent également être exprimées à l’aide des crochets :

$ ls
student-1A.txt  student-2A.txt  student-3.txt
$ ls student-[0-9][A-Z].txt
student-1A.text student-2A.txt

La liste affiche l’annuaire d’une école avec la liste des élèves inscrits. Nous souhaitons afficher tous les élèves dont le numéro d’inscription répond aux critères suivants :

  • commence par student-

  • suivi d’un chiffre et d’une majuscule

  • finit par .txt

Combiner les caractères de substitution

Les caractères de substitution peuvent être combinés comme ici :

$ ls
last.txt    lest.txt    list.txt    third.txt   past.txt
$ ls [plf]?st* 
last.txt    lest.txt    list.txt    past.txt

Le premier élément du groupe de caractères de substitution ([plf]) correspond à n’importe lequel des caractères p, l ou f. Le deuxième élément du groupe de caractères de substitution (?) correspond à n’importe quel caractère unique. Le troisième élément du groupe de caractères de substitution (*) correspond à zéro, une ou plusieurs occurrences de n’importe quel caractère.

$ ls
file1.txt file.txt file23.txt fom23.txt
$ ls f*[0-9].txt
file1.txt file23.txt fom23.txt

La commande précédente affiche tous les fichiers dont le nom commence par la lettre f suivie d’un ensemble quelconque de lettres et d’au moins une occurrence d’un chiffre et qui se termine par .txt. Notez que file.txt n’est pas affiché car il ne correspond pas à ces critères.

Exercices guidés

  1. Considérez l’affichage ci-dessous :

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • Que représente le caractère d dans les résultats ?

    • Pourquoi les tailles s’affichent-elles dans un format humainement lisible ?

    • Qu’est-ce qui changerait dans l’affichage si ls était utilisé sans argument ?

  2. Considérez la commande ci-dessous :

    $ cp /home/frank/emp_name /home/frank/backup
    • Que se passera-t-il avec le fichier emp_name si cette commande est exécutée avec succès ?

    • Si emp_name était un répertoire, quelle option devrait être ajoutée à cp pour exécuter la commande ?

    • Si cp est remplacé par mv, à quoi pouvez-vous vous attendre ?

  3. Considérez la liste de fichiers suivante :

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Quel caractère de substitution permettrait de supprimer tout le contenu de ce répertoire ?

  4. En partant du listing précédent, quels fichiers seraient affichés par la commande suivante ?

    $ ls file*.txt
  5. Complétez la commande en ajoutant les chiffres et les caractères appropriés entre les crochets pour énumérer tout le contenu ci-dessus :

    $ ls file[].txt

Exercices d’approfondissement

  1. Dans votre répertoire utilisateur, créez deux fichiers dog et cat.

  2. Toujours dans votre répertoire utilisateur, créez le répertoire animal. Déplacez dog et cat vers animal.

  3. Allez dans le dossier Documents qui se trouve dans votre répertoire utilisateur et créez le répertoire backup à l’intérieur de celui-ci.

  4. Copiez animal et tout son contenu vers backup.

  5. Renommez animal dans backup en animal.bkup.

  6. Le répertoire /home/lpi/databases contient de nombreux fichiers dont : db-1.tar.gz, db-2.tar.gz et db-3.tar.gz. Quelle commande simple pouvez-vous utiliser pour afficher uniquement les fichiers en question ?

  7. Considérez le listing suivant :

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    En utilisant un seul caractère de substitution, quelle commande permettrait de supprimer uniquement les fichiers .pdf ?

Résumé

Dans cette leçon, nous avons appris à visualiser le contenu d’un répertoire avec la commande ls, à copier (cp) des fichiers et des dossiers et à les déplacer (mv). Nous avons vu la création de nouveaux répertoires avec la commande mkdir. Les commandes pour la suppression des fichiers (rm) et des répertoires (rmdir) ont également été abordées.

Dans cette leçon, vous avez également appris à connaître le globbing des fichiers et les caractères de substitution. Le globbing des fichiers est utilisé pour représenter plusieurs noms de fichiers en utilisant des caractères spéciaux appelés jokers ou caractères de substitution. Voici les principaux jokers et leur signification respective :

? (point d’interrogation)

représente une seule occurrence d’un caractère.

[ ] (crochets)

représentent toute occurrence du ou des caractères contenus entre les crochets.

* (astérisque)

représente zéro, une ou plusieurs occurrences de n’importe quel caractère.

Vous pouvez très bien combiner tous ces jokers dans une seule et même instruction.

Réponses aux exercices guidés

  1. Considérez l’affichage ci-dessous :

    $ ls -lh
    total 60K
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Desktop
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Documents
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Downloads
    -rw-r--r--  1   frank   frank     21    Sep 7   12:59   emp_name
    -rw-r--r--  1   frank   frank     20    Sep 7   13:03   emp_salary
    -rw-r--r--  1   frank   frank   8.8K    Apr 1   2018    examples.desktop
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file1
    -rw-r--r--  1   frank   frank     10    Sep 1   2018    file2
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Music
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Pictures
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Public
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Templates
    drwxr-xr-x  2   frank   frank   4.0K    Apr 1   2018    Videos
    • Que représente le caractère d dans les résultats ?

      d est le caractère qui identifie un répertoire.

    • Pourquoi les tailles s’affichent-elles dans un format humainement lisible ?

      À cause de l’option -h.

    • Qu’est-ce qui changerait dans l’affichage si ls était utilisé sans argument ?

      Seuls les noms des répertoires et des fichiers seraient indiqués.

  2. Considérez la commande ci-dessous :

    $ cp /home/frank/emp_name /home/frank/backup
    • Que se passera-t-il avec le fichier emp_name si cette commande est exécutée avec succès ?

      emp_name sera copié dans backup.

    • Si emp_name était un répertoire, quelle option devrait être ajoutée à cp pour exécuter la commande ?

      -r

    • Si cp est remplacé par mv, à quoi pouvez-vous vous attendre ?

      emp_name serait déplacé dans backup. Il n’existera plus dans le répertoire personnel de l’utilisateur frank.

  3. Considérez la liste de fichiers suivante :

    $ ls
    file1.txt file2.txt file3.txt file4.txt

    Quel caractère de substitution permettrait de supprimer tout le contenu de ce répertoire ?

    L’astérisque *.

  4. En partant du listing précédent, quels fichiers seraient affichés par la commande suivante ?

    $ ls file*.txt

    Tous, puisque le caractère astérisque représente un nombre quelconque de caractères.

  5. Complétez la commande en ajoutant les chiffres et les caractères appropriés entre les crochets pour énumérer tout le contenu ci-dessus :

    $ ls file[].txt

    file[0-9].txt

Réponses aux exercices d’approfondissement

  1. Dans votre répertoire utilisateur, créez deux fichiers dog et cat.

    $ touch dog cat
  2. Toujours dans votre répertoire utilisateur, créez le répertoire animal. Déplacez dog et cat vers animal.

    $ mkdir animal
    $ mv dog cat -t animal/
  3. Allez dans le dossier Documents qui se trouve dans votre répertoire utilisateur et créez le répertoire backup à l’intérieur de celui-ci.

    $ cd ~/Documents
    $ mkdir backup
  4. Copiez animal et tout son contenu vers backup.

    $ cp -r animal ~/Documents/backup
  5. Renommez animal dans backup en animal.bkup.

    $ mv animal/ animal.bkup
  6. Le répertoire /home/lpi/databases contient de nombreux fichiers dont : db-1.tar.gz, db-2.tar.gz et db-3.tar.gz. Quelle commande simple pouvez-vous utiliser pour afficher uniquement les fichiers en question ?

    $ ls db-[1-3].tar.gz
  7. Considérez le listing suivant :

    $ ls
    cne1222223.pdf cne12349.txt cne1234.pdf

    En utilisant un seul caractère de substitution, quelle commande permettrait de supprimer uniquement les fichiers .pdf ?

    $ rm *.pdf

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

Prochaine leçon

103.3 Gestion élémentaire des fichiers (103.3 Leçon 2)

Lire la prochaine leçon

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

LPI est une organisation à but non lucratif.

© 2023 Le Linux Professional Institute (LPI) est la référence mondiale en matière de certification et un organisme de soutien aux professionnels de l'Open Source. Avec plus de 200 000 certifiés à son actif, c'est le principal organisme de certification indépendant pour Linux et l'Open Source au monde. Le LPI a certifié des professionnels dans plus de 180 pays, organise des examens en plusieurs langues et compte des centaines de partenaires pour la formation.

Notre objectif est la création d'opportunités économiques et créatives pour tous en rendant accessible au monde entier la certification des connaissances et des compétences en matière d'Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contactez-nous
  • Politique en matière de confidentialité et de cookies

Vous avez repéré une erreur ou vous voulez aider à améliorer cette page ? Faites-nous savoir.

© 1999–2023 The Linux Professional Institute Inc. Tous droits réservés.