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 |
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 |
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 |
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 parst
. 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
-
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 ?
-
-
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é parmv
, à quoi pouvez-vous vous attendre ?
-
-
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 ?
-
En partant du listing précédent, quels fichiers seraient affichés par la commande suivante ?
$ ls file*.txt
-
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
-
Dans votre répertoire utilisateur, créez deux fichiers
dog
etcat
. -
Toujours dans votre répertoire utilisateur, créez le répertoire
animal
. Déplacezdog
etcat
versanimal
. -
Allez dans le dossier
Documents
qui se trouve dans votre répertoire utilisateur et créez le répertoirebackup
à l’intérieur de celui-ci. -
Copiez
animal
et tout son contenu versbackup
. -
Renommez
animal
dansbackup
enanimal.bkup
. -
Le répertoire
/home/lpi/databases
contient de nombreux fichiers dont :db-1.tar.gz
,db-2.tar.gz
etdb-3.tar.gz
. Quelle commande simple pouvez-vous utiliser pour afficher uniquement les fichiers en question ? -
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
-
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.
-
-
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é dansbackup
. -
Si
emp_name
était un répertoire, quelle option devrait être ajoutée àcp
pour exécuter la commande ?-r
-
Si
cp
est remplacé parmv
, à quoi pouvez-vous vous attendre ?emp_name
serait déplacé dansbackup
. Il n’existera plus dans le répertoire personnel de l’utilisateurfrank
.
-
-
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
*
. -
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.
-
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
-
Dans votre répertoire utilisateur, créez deux fichiers
dog
etcat
.$ touch dog cat
-
Toujours dans votre répertoire utilisateur, créez le répertoire
animal
. Déplacezdog
etcat
versanimal
.$ mkdir animal $ mv dog cat -t animal/
-
Allez dans le dossier
Documents
qui se trouve dans votre répertoire utilisateur et créez le répertoirebackup
à l’intérieur de celui-ci.$ cd ~/Documents $ mkdir backup
-
Copiez
animal
et tout son contenu versbackup
.$ cp -r animal ~/Documents/backup
-
Renommez
animal
dansbackup
enanimal.bkup
.$ mv animal/ animal.bkup
-
Le répertoire
/home/lpi/databases
contient de nombreux fichiers dont :db-1.tar.gz
,db-2.tar.gz
etdb-3.tar.gz
. Quelle commande simple pouvez-vous utiliser pour afficher uniquement les fichiers en question ?$ ls db-[1-3].tar.gz
-
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