Académique Documents
Professionnel Documents
Culture Documents
répertoires
8.1 Présentation
Lorsque vous travaillez dans un système d'exploitation Linux, il est
important de savoir comment manipuler les fichiers et les
répertoires. Certaines distributions Linux ont des applications basées sur
une interface graphique qui vous permettent de gérer des fichiers, mais il
est avantageux de savoir comment effectuer ces opérations via la ligne
de commande.
Noter
Il est important de noter que tout dans Linux est sensible à la casse, une
fonctionnalité reprise d'Unix. Cela signifie que le shell reconnaît un
caractère a- minuscule comme complètement différent d'un
caractère - zmajuscule . Lors de la manipulation de fichiers, faites
attention à votre capitalisation : un fichier est différent des
fichiers et .AZhello.txtHELLO.txtHello.txt
La norme de caractères utilisée pour Linux est la norme UTF-8 qui est
basée sur l'ASCII (American Standard Code for American
Interchange). Pour en savoir plus sur ASCII, exécutez la man -s 7
asciicommande.
8.2 Globbing
Les caractères Glob sont souvent appelés jokers. Ce sont des symboles
qui ont une signification particulière pour le shell.
Les globs sont puissants car ils vous permettent de spécifier des
modèles qui correspondent aux noms de fichiers dans un
répertoire. Ainsi, au lieu de manipuler un seul fichier à la fois, vous
pouvez facilement exécuter des commandes qui affectent de nombreux
fichiers. Par exemple, en utilisant des caractères glob, il est possible de
manipuler tous les fichiers avec une extension spécifique ou avec une
longueur de nom de fichier particulière.
Contrairement aux commandes exécutées par le shell ou aux options et
arguments que le shell transmet aux commandes, les caractères glob
sont interprétés par le shell lui-même avant qu'il ne tente d'exécuter une
1
commande. Par conséquent, les caractères glob peuvent être utilisés
avec n'importe quelle commande.
Les exemples fournis dans ce chapitre utilisent la echocommande pour la
démonstration.
2
/etc/resolv.conf /etc/rsyslog.conf
8.2.2 Point
d'interrogation ? Personnage
Le caractère point d'interrogation ?représente n'importe quel caractère
unique. Chaque caractère de point d'interrogation correspond
exactement à un caractère, ni plus ni moins.
Supposons que vous souhaitiez afficher tous les fichiers du /etc
répertoire commençant par la lettre t et comportant exactement 7
caractères après le t caractère :
Les caractères Glob peuvent être utilisés ensemble pour trouver des
motifs encore plus complexes. La commande
pattern /etc/*???????????????????? ne fait correspondre que les
fichiers du /etc répertoire avec vingt caractères ou plus dans le nom de
fichier :
3
à tout fichier commençant par un caractère g ou u et contenant zéro ou
plusieurs caractères supplémentaires :
Les crochets peuvent également être utilisés pour représenter une plage
de caractères. Par exemple, le /etc/[a-d]* modèle correspond à tous les
fichiers qui commencent par n'importe quelle lettre entre et y compris a
et d :
La plage est basée sur la table de texte ASCII . Ce tableau définit une
liste de caractères, en les organisant dans un ordre standard
spécifique. Si une commande non valide est fournie, aucune
correspondance ne sera effectuée :
4
sysadmin@localhost : ~ $ echo /etc/*[9-0]*
/etc/*[9-0]*
Noter
La table de texte ASCII peut être visualisée dans nos machines virtuelles
en exécutant la asciicommande.
8.2.4 Point
d'exclamation ! Personnage
Le caractère point d'exclamation !est utilisé conjointement avec les
crochets pour annuler une plage. Par exemple, le modèle /etc/[!
DP]*correspond à tout fichier qui ne commence pas par a D ou P .
5
ls /etc/adduser.conf /etc/alternatives /etc/apparmor /etc/apparmor.d
/etc/apt
ls /etc/adduser.conf
ls /etc/alternatives
ls /etc/apparmor
ls /etc/apparmor.d
ls /etc/apt
sysadmin@localhost : ~ $ ls /etc/adduser.conf
/etc/adduser.conf
sysadmin@localhost : ~ $ ls -l /etc/adduser.conf
-rw-r--r-- 1 racine racine 3028 26 mai 2018 /etc/adduser.conf
sysadmin@localhost : ~ $ ls /etc/apparmor
init parser.conf subdomain.conf
6
Pourquoi est-ce un problème lors de l'utilisation de globs ? Considérez la
sortie suivante :
sysadmin@localhost : ~ $ ls /etc/ap*
/etc/apparmor :
init analyseur.conf sous-domaine.conf
/etc/apparmor.d :
les abstractions désactivent les réglages locaux usr.sbin.named
cache force-complain sbin.dhclient usr.bin.man usr.sbin.rsyslogd
/etc/apt :
apt.conf.d preferences.d sources.list sources.list.d trusted.gpg.d
sysadmin@localhost : ~ $ ls /etc/x*
autostart systemd user-dirs.conf user-dirs.defaults
sysadmin@localhost : ~ $ ls -d /etc/x*
/etc/xdg
cp [source] [destination]
sysadmin@localhost : ~ $ cp /etc/hosts ~
sysadmin@localhost : ~ $ ls
Bureau Téléchargements Images Modèles hôtes
Documents Musique Vidéos publiques
sysadmin@localhost : ~ $ cp -v /etc/hosts ~
`/etc/hosts' -> `/home/sysadmin/hosts'
sysadmin@localhost : ~ $ ls -l exemple.txt
-rw-r--r-- 1 administrateur système administrateur système 10 décembre
15 22:55 example.txt
sysadmin@localhost : ~ $ ls -l exemple.txt
-rw-r--r-- 1 administrateur système administrateur système 8 15
décembre 22:58 exemple.txt
sysadmin@localhost : ~ $ cat exemple.txt
Etc./UTC
9
cp : écraser `/home/sysadmin/example.txt' ? n
sysadmin@localhost : ~ $ cp -i /etc/skel/.* ~
cp : -r non spécifié ; omettre le répertoire '/etc/skel/.'
cp : -r non spécifié ; omettre le répertoire '/etc/skel/..'
cp : écraser `/home/sysadmin/.bash_logout' ? n
cp : écraser `/home/sysadmin/.bashrc' ? n
cp : écraser `/home/sysadmin/.profile' ? n
cp : écraser `/home/sysadmin/.selected_editor' ? n
sysadmin@localhost : ~ $ cp -n /etc/skel/.* ~
cp : -r non spécifié ; omettre le répertoire '/etc/skel/.'
cp : -r non spécifié ; omettre le répertoire '/etc/skel/..'
sysadmin@localhost : ~ $ cp -n /etc/skel/.* ~
10
cp : -r non spécifié ; omettre le répertoire '/etc/skel/.'
cp : -r non spécifié ; omettre le répertoire '/etc/skel/..'
cp -r répertoire_source répertoire_destination
mv [source] [destination]
sysadmin@localhost : ~ $ ls
Téléchargements de bureau Modèles d'images example.txt hosts.copy
Documents Musique Hôtes
de vidéos publiques sysadmin@localhost : ~ $ mv héberge Vidéos
sysadmin@localhost : ~ $ ls
Téléchargements de bureau Modèles d'images example.txt
Documents Musique Hôtes.copy
sysadmin@localhost :~ $ ls Vidéos
11
hôtes
sysadmin@localhost : ~ $ mv /etc/hosts .
mv : impossible de déplacer `/etc/hosts' vers `./hosts' : autorisation
refusée
sysadmin@localhost : ~ $ ls
Téléchargements de bureau Modèles d'images example.txt
Documents Musique Vidéos publiques hosts.copy
sysadmin@localhost : ~ $ mv example.txt Videos/newexample.txt
sysadmin@localhost : ~ $ ls
Téléchargements de bureau Modèles d'images hosts.copy
Documents Musique Vidéos publiques
sysadmin@localhost : ~ $ls Vidéos
héberge newexample.txt
12
sysadmin@localhost : ~ $ cd Vidéos
sysadmin@localhost : ~/Videos $ ls
héberge newexample.txt
sysadmin@localhost : ~/Videos $ mv nouvelexemple.txt monfichier.txt
sysadmin@localhost : ~/Videos $ ls
héberge monfichier.txt
13
Option Signification
résultant.
Important
Il n'y a pas -rd'option car la mvcommande déplace les répertoires par
défaut.
Notez que les fichiers ont été supprimés sans poser de questions. Cela
pourrait causer des problèmes lors de la suppression de plusieurs
fichiers à l'aide de caractères glob. Étant donné que ces fichiers sont
supprimés sans aucun doute, un utilisateur pourrait finir par supprimer
des fichiers qui n'étaient pas destinés à être supprimés.
Avertissement
Les fichiers sont définitivement supprimés. Il n'y a pas de commande
pour restaurer un fichier et pas de corbeille à partir de laquelle récupérer
les fichiers supprimés.
Par précaution, les utilisateurs doivent utiliser l' -ioption lors de la
suppression de plusieurs fichiers :
15
8.6.1 Suppression de répertoires
Vous pouvez supprimer des répertoires à l'aide de
la rmcommande. Cependant, le comportement par défaut (pas d'options)
de la rmcommande est de ne pas supprimer les répertoires :
sysadmin@localhost : ~ $ rm Vidéos
rm : impossible de supprimer `Videos' : est un répertoire
sysadmin@localhost : ~ $ ls
Bureau Téléchargements Images Modèles sample.txt
Documents Musique Vidéos publiques
sysadmin@localhost : ~ $ rm -r Vidéos
sysadmin@localhost : ~ $ ls
Bureau Documents Téléchargements Musique Images Modèles publics
sample.txt
sysadmin@localhost : ~ $ ls
16
Bureau Documents Téléchargements Musique Images Modèles publics
sample.txt
sysadmin@localhost : ~ $ mkdir test
sysadmin@localhost : ~ $ ls
Bureau Téléchargements Images Modèles test
Documents Musique Public sample.txt
17