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
2.4 Leçon 1
Sujet 1 : Communauté Linux et carrière dans le logiciel libre
1.1 Évolution de Linux et systèmes d'exploitation populaires
  • 1.1 Leçon 1
1.2 Applications libres majeures
  • 1.2 Leçon 1
1.3 Logiciel à code source ouvert et licences
  • 1.3 Leçon 1
1.4 Compétences informatiques et travail sous Linux
  • 1.4 Leçon 1
Sujet 2 : Trouver son chemin sur un système Linux
2.1 Bases sur la ligne de commande
  • 2.1 Leçon 1
  • 2.1 Leçon 2
2.2 Utilisation de la ligne de commande pour obtenir de l'aide
  • 2.2 Leçon 1
2.3 Utilisation des répertoires et liste des fichiers
  • 2.3 Leçon 1
  • 2.3 Leçon 2
2.4 Création, déplacement et suppression de fichiers
  • 2.4 Leçon 1
Sujet 3 : Le pouvoir de la ligne de commande
3.1 Archivage de fichiers en ligne de commande
  • 3.1 Leçon 1
3.2 Recherche et extraction de données à partir de fichiers
  • 3.2 Leçon 1
  • 3.2 Leçon 2
3.3 Conversion de commandes en script
  • 3.3 Leçon 1
  • 3.3 Leçon 2
Sujet 4 : Le système d'exploitation Linux
4.1 Choix d'un système d'exploitation
  • 4.1 Leçon 1
4.2 Compréhension du matériel informatique
  • 4.2 Leçon 1
4.3 Localisation des données
  • 4.3 Leçon 1
  • 4.3 Leçon 2
4.4 Intégration au réseau
  • 4.4 Leçon 1
Sujet 5 : Sécurité et droits d'accès aux fichiers
5.1 Sécurité élémentaire et identification des catégories d'utilisateurs
  • 5.1 Leçon 1
5.2 Création des utilisateurs et des groupes
  • 5.2 Leçon 1
5.3 Gestion des propriétés et des droits d'accès aux fichiers
  • 5.3 Leçon 1
5.4 Répertoires et fichiers spéciaux
  • 5.4 Leçon 1
How to get certified
  1. Sujet 2 : Trouver son chemin sur un système Linux
  2. 2.4 Création, déplacement et suppression de fichiers
  3. 2.4 Leçon 1

2.4 Leçon 1

Certification :

Linux Essentials

Version :

1.6

Thème :

2 Trouver son Chemin sur un Système Linux

Objectif :

2.4 Création, Déplacement et Suppression de Fichiers

Leçon:

1 sur 1

Introduction

Cette leçon couvre la gestion des fichiers et des répertoires sous Linux à l’aide d’outils en ligne de commande.

Un fichier est une collection de données avec un nom et un ensemble d’attributs. Si, par exemple, vous deviez transférer certaines photos de votre téléphone à un ordinateur et leur donner des noms descriptifs, vous auriez alors un tas de fichiers d’images sur votre ordinateur. Ces fichiers ont des attributs tels que l’heure du dernier accès au fichier ou de sa dernière modification.

Un répertoire est un type de fichier spécial utilisé pour organiser les fichiers. Une bonne façon de concevoir les répertoires est de les comparer aux dossiers utilisés pour organiser les documents dans une armoire à dossiers. Contrairement aux dossiers papier, vous pouvez facilement placer des répertoires à l’intérieur d’autres répertoires.

La ligne de commande est le moyen le plus efficace de gérer des fichiers sur un système Linux. Le shell et les outils en ligne de commande ont des caractéristiques qui rendent l’utilisation de la ligne de commande plus rapide et plus facile qu’un gestionnaire de fichiers graphique.

Dans cette section, vous utiliserez les commandes ls, mv, cp, pwd, find, touch, rm, rmdir, echo, cat et mkdir pour gérer et organiser les fichiers et les répertoires.

Sensibilité à la Casse

Contrairement à Microsoft Windows, les noms de fichiers et de répertoires sur les systèmes Linux sont sensibles à la casse. Cela signifie que les noms /etc/ et /ETC/ sont des répertoires différents. Essayez les commandes suivantes :

$ cd /
$ ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
$ cd ETC
bash: cd: ETC: No such file or directory
$ pwd
/
$ cd etc
$ pwd
/etc

La commande pwd vous montre le répertoire dans lequel vous êtes actuellement. Comme vous pouvez le voir, la navigation vers /ETC n’a pas fonctionné car il n’existe pas de tel répertoire. La navigation vers le répertoire /etc qui existe, a réussi.

Création de Répertoires

La commande mkdir est utilisée pour créer des répertoires.

Créons un nouveau répertoire au sein de notre répertoire personnel :

$ cd ~
$ pwd
/home/user
$ ls
Desktop  Documents  Downloads
$ mkdir linux_essentials-2.4
$ ls
Desktop  Documents  Downloads  linux_essentials-2.4
$ cd linux_essentials-2.4
$ pwd
/home/emma/linux_essentials-2.4

Durant cette leçon, toutes les commandes seront exécutées dans ce répertoire ou dans l’un de ses sous-répertoires.

Pour revenir facilement au répertoire de la leçon depuis n’importe quel autre endroit de votre système de fichiers, vous pouvez utiliser la commande :

$ cd ~/linux_essentials-2.4

Le shell interprète le caractère ~ comme votre répertoire personnel.

Lorsque vous êtes dans le répertoire de la leçon, créez d’autres répertoires que nous utiliserons pour les exercices. Vous pouvez ajouter à mkdir tous les noms de répertoires, séparés par des espaces :

$ mkdir creating moving copying/files copying/directories deleting/directories deleting/files globs
mkdir: cannot create directory ‘copying/files’: No such file or directory
mkdir: cannot create directory ‘copying/directories’: No such file or directory
mkdir: cannot create directory ‘deleting/directories’: No such file or directory
mkdir: cannot create directory ‘deleting/files’: No such file or directory
$ ls
creating  globs  moving

Remarquez le message d’erreur et que seuls les répertoires moving, globs et creating ont été créés. Les répertoires copying et deleting n’existent pas encore. mkdir, par défaut, ne crée pas de répertoire à l’intérieur d’un répertoire qui n’existe pas. L’option -p ou --parents indique à mkdir de créer des répertoires parents s’ils n’existent pas. Essayez la même commande mkdir avec l’option -p :

$ mkdir -p creating moving copying/files copying/directories deleting/directories deleting/files globs

Maintenant, vous n’avez plus de messages d’erreur. Voyons voir quels répertoires existent maintenant :

$ find
.
./creating
./moving
./globs
./copying
./copying/files
./copying/directories
./deleting
./deleting/directories
./deleting/files

Le programme find est généralement utilisé pour rechercher des fichiers et des répertoires, mais sans aucune option, il vous montrera la liste de tous les fichiers, répertoires et sous-répertoires de votre répertoire courant.

Les options -t et -r sont particulièrement pratiques pour lister le contenu d’un répertoire avec ls. Elles permettent de trier la sortie par temps (-t) et d’inverser l’ordre de tri (-r). Dans ce cas, les fichiers les plus récents se trouveront en bas de la sortie.

Création de Fichiers

En règle générale, les fichiers seront créés par les programmes qui travaillent avec les données stockées dans les fichiers. Un fichier vide peut être créé à l’aide de la commande touch. Si vous exécutez la commande touch sur un fichier existant, le contenu du fichier ne sera pas modifié, mais l’horodatage de modification des fichiers sera mis à jour.

Exécutez la commande suivante pour créer quelques fichiers pour la leçon de globbing :

$ touch globs/question1 globs/question2012 globs/question23 globs/question13 globs/question14
$ touch globs/star10 globs/star1100 globs/star2002 globs/star2013

Vérifions maintenant que tous les fichiers existent dans le répertoire globs :

$ cd globs
$ ls
question1   question14    question23  star1100  star2013
question13  question2012  star10      star2002

Vous remarquez comment touch a créé les fichiers ? Vous pouvez visualiser le contenu d’un fichier texte avec la commande cat. Essayez-la sur un des fichiers que vous venez de créer :

$ cat question14

Comme touch crée des fichiers vides, vous ne devriez obtenir aucun résultat. Vous pouvez utiliser la commande echo avec > pour créer des fichiers texte simples. Essayez-la :

$ echo hello > question15
$ cat question15
hello

echo affiche du texte sur la ligne de commande. Le caractère > indique au shell d’écrire la sortie d’une commande dans le fichier spécifié au lieu de votre terminal. Cela conduit à ce que la sortie de echo, hello dans ce cas, soit écrite dans le fichier question15. Ceci n’est pas spécifique à echo, il peut être utilisé avec n’importe quelle commande.

Soyez prudent lorsque vous utilisez > ! Si le fichier cîble existe déjà, il sera écrasé !

Renommage de Fichiers

Les fichiers sont déplacés et renommés avec la commande mv.

Définissez moving comme votre répertoire de travail :

$ cd ~/linux_essentials-2.4/moving

Créez des fichiers pour vous entraîner. Vous devriez déjà être familiarisé avec ces commandes :

$ touch file1 file22
$ echo file3 > file3
$ echo file4 > file4
$ ls
file1  file22  file3  file4

Supposons que file22 est une faute de frappe et qu’il devrait être le file2. Corrigez-la avec la commande mv. Lorsque vous renommez un fichier, le premier argument est le nom actuel, le second est le nouveau nom :

$ mv file22 file2
$ ls
file1  file2  file3  file4

Faites attention à la commande mv. Si vous renommez un fichier en lui donnant le nom d’un fichier existant, il l’écrasera. Testons cela avec file3 et file4 :

$ cat file3
file3
$ cat file4
file4
$ mv file4 file3
$ cat file3
file4
$ ls
file1  file2  file3

Remarquez que le contenu de file3 est maintenant celui de file4. Utilisez l’option -i pour que mv vous alerte si vous êtes sur le point d’écraser un fichier existant. Essayez-la :

$ touch file4 file5
$ mv -i file4 file3
mv: overwrite ‘file3’? y

Déplacement des Fichiers

Les fichiers sont déplacés d’un répertoire à un autre avec la commande mv.

Créez quelques répertoires pour y déplacer des fichiers :

$ cd ~/linux_essentials-2.4/moving
$ mkdir dir1 dir2
$ ls
dir1  dir2  file1  file2  file3  file5

Déplacez file1 dans dir1 :

$ mv file1 dir1
$ ls
dir1  dir2  file2  file3  file5
$ ls dir1
file1

Remarquez que le dernier argument de mv est le répertoire de destination. Lorsque le dernier argument de mv est un répertoire, les fichiers sont déplacés dans celui-ci. Plusieurs fichiers peuvent être spécifiés dans une seule commande mv :

$ mv file2 file3 dir2
$ ls
dir1  dir2  file5
$ ls dir2
file2  file3

Il est également possible d’utiliser mv pour déplacer et renommer des répertoires. Renommez dir1 en dir3 :

$ ls
dir1  dir2  file5
$ ls dir1
file1
$ mv dir1 dir3
$ ls
dir2  dir3  file5
$ ls dir3
file1

Suppression de Fichiers et de Répertoires

La commande rm peut supprimer des fichiers et des répertoires, tandis que la commande rmdir ne peut supprimer que des répertoires. Nettoyons le répertoire moving en supprimant file5 :

$ cd ~/linux_essentials-2.4/moving
$ ls
dir2  dir3  file5
$ rmdir file5
rmdir: failed to remove ‘file5’: Not a directory
$ rm file5
$ ls
dir2  dir3

Par défaut, rmdir ne peut supprimer que des répertoires vides, c’est pourquoi nous avons dû utiliser rm pour supprimer un fichier régulier. Essayez de supprimer le répertoire deleting :

$ cd ~/linux_essentials-2.4/
$ ls
copying  creating  deleting  globs  moving
$ rmdir deleting
rmdir: failed to remove ‘deleting’: Directory not empty
$ ls -l deleting
total 0
drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 directories
drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 files

Par défaut, rmdir refuse de supprimer un répertoire qui n’est pas vide. Utilisez rmdir pour supprimer l’un des sous-répertoires vides du répertoire deleting :

$ ls -a deleting/files
.  ..
$ rmdir deleting/files
$ ls -l deleting
directories

La suppression d’un grand nombre de fichiers ou de profondes structures de répertoires comportant de nombreux sous-répertoires peut sembler fastidieuse, mais elle est en fait facile. Par défaut, rm ne fonctionne que sur les fichiers ordinaires. L’option -r est utilisée pour passer outre ce comportement. Attention, rm -r est un excellent pistolet à pied ! Lorsque vous utilisez l’option -r, rm ne supprime pas seulement les répertoires, mais tout ce qui se trouve dans ce répertoire, y compris les sous-répertoires et leur contenu. Voyez par vous-même comment rm -r fonctionne :

$ ls
copying  creating  deleting  globs  moving
$ rm deleting
rm: cannot remove ‘deleting’: Is a directory
$ ls -l deleting
total 0
drwxrwxr-x. 2 emma emma 6 Mar 26 14:58 directories
$ rm -r deleting
$ ls
copying  creating  globs  moving

Vous avez remarqué que deleting a disparu, même si elle n’était pas vide ? Comme mv, rm dispose d’une option -i pour vous alerter avant toute action. Utilisez rm -ri pour supprimer les répertoires de la section moving qui ne sont plus nécessaires :

$ find
.
./creating
./moving
./moving/dir2
./moving/dir2/file2
./moving/dir2/file3
./moving/dir3
./moving/dir3/file1
./globs
./globs/question1
./globs/question2012
./globs/question23
./globs/question13
./globs/question14
./globs/star10
./globs/star1100
./globs/star2002
./globs/star2013
./globs/question15
./copying
./copying/files
./copying/directories
$ rm -ri moving
rm: descend into directory ‘moving’? y
rm: descend into directory ‘moving/dir2’? y
rm: remove regular empty file ‘moving/dir2/file2’? y
rm: remove regular empty file ‘moving/dir2/file3’? y
rm: remove directory ‘moving/dir2’? y
rm: descend into directory ‘moving/dir3’? y
rm: remove regular empty file ‘moving/dir3/file1’? y
rm: remove directory ‘moving/dir3’? y
rm: remove directory ‘moving’? y

Copie de Fichiers et de Répertoires

La commande cp est utilisée pour copier des fichiers et des répertoires. Copiez quelques fichiers dans le répertoire copying :

$ cd ~/linux_essentials-2.4/copying
$ ls
directories  files
$ cp /etc/nsswitch.conf files/nsswitch.conf
$ cp /etc/issue /etc/hostname files

Si le dernier argument est un répertoire, cp créera une copie des arguments précédents à l’intérieur de ce répertoire. Comme mv, plusieurs fichiers peuvent être spécifiés en même temps, à condition que la cible soit un répertoire.

Lorsque les deux opérandes de cp sont des fichiers et que les deux fichiers existent, cp écrase le second fichier avec une copie du premier fichier. Pratiquons cela en écrasant le fichier issue avec le fichier hostname :

$ cd ~/linux_essentials-2.4/copying/files
$ ls
hostname  issue  nsswitch.conf
$ cat hostname
mycomputer
$ cat issue
Debian GNU/Linux 9 \n \l

$ cp hostname issue
$ cat issue
mycomputer

Essayons maintenant de créer une copie du répertoire files dans le répertoire directories :

$ cd ~/linux_essentials-2.4/copying
$ cp files directories
cp: omitting directory ‘files’

Comme vous pouvez le constater, cp ne fonctionne par défaut que sur des fichiers individuels. Pour copier un répertoire, vous utilisez l’option -r. Gardez à l’esprit que l’option -r fera que cp copie également le contenu du répertoire que vous copiez :

$ cp -r files directories
$ find
.
./files
./files/nsswitch.conf
./files/fstab
./files/hostname
./directories
./directories/files
./directories/files/nsswitch.conf
./directories/files/fstab
./directories/files/hostname

Remarquez comment, lorsqu’un répertoire existant a été utilisé comme destination, cp crée une copie du répertoire source à l’intérieur de celui-ci ? Si la destination n’existe pas, il la crée et la remplit avec le contenu du répertoire source :

$ cp -r files files2
$ find
.
./files
./files/nsswitch.conf
./files/fstab
./files/hostname
./directories
./directories/files
./directories/files/nsswitch.conf
./directories/files/fstab
./directories/files/hostname
./files2
./files2/nsswitch.conf
./files2/fstab
./files2/hostname

Globbing

Ce que l’on appelle communément le globbing est un langage simple de correspondance de motifs. Les shells en ligne de commande sur les systèmes Linux utilisent ce langage pour désigner des groupes de fichiers dont les noms correspondent à un motif spécifique. POSIX.1-2017 spécifie les caractères suivants pour la correspondance des motifs :

*

Correspond à un nombre quelconque de caractères, y compris aucun caractère

?

Correspond à n’importe quel caractère une fois

[]

Correspond à une classe de caractères

En anglais, cela signifie que vous pouvez dire à votre shell de correspondre à un modèle plutôt qu’à une chaîne de texte littérale. Habituellement, les utilisateurs de Linux spécifient plusieurs fichiers avec un glob au lieu de taper le nom de chaque fichier. Exécutez les commandes suivantes :

$ cd ~/linux_essentials-2.4/globs
$ ls
question1   question14  question2012  star10    star2002
question13  question15  question23    star1100  star2013
$ ls star1*
star10  star1100
$ ls star*
star10  star1100  star2002  star2013
$ ls star2*
star2002  star2013
$ ls star2*2
star2002
$ ls star2013*
star2013

Le shell étend * à n’importe quel nombre de caractères, donc votre shell interprète star* comme signifiant tout ce qui, dans le contexte pertinent, commence par star. Lorsque vous exécutez la commande ls star*, votre shell n’exécute pas le programme ls avec l’argument star*, il recherche les fichiers dans le répertoire courant qui correspondent au motif star* (y compris juste star), et transforme chaque fichier correspondant au motif en un argument de ls :

$ ls star*

en ce qui concerne ls est l’équivalent de

$ ls star10  star1100  star2002  star2013

Le caractère * ne signifie rien pour ls. Pour le prouver, exécutez la commande suivante :

$ ls star\*
ls: cannot access star*: No such file or directory

Lorsque vous faites précéder un caractère d’un \, vous demandez à votre shell de ne pas l’interpréter. Dans ce cas, vous voulez que ls ait un argument star* à la place de ce que le glob star* développe.

Le caractère ? s’étend à n’importe quel caractère une fois. Essayez les commandes suivantes pour vous en rendre compte par vous-même :

$ ls
question1   question14  question2012  star10    star2002
question13  question15  question23    star1100  star2013
$ ls question?
question1
$ ls question1?
question13  question14  question15
$ ls question?3
question13  question23
$ ls question13?
ls: cannot access question13?: No such file or directory

Les crochets [] sont utilisés pour faire correspondre des plages ou des classes de caractères. Les crochets [] fonctionnent comme dans les expressions régulières POSIX, mais avec les globs, le ^ est utilisé à la place du ! .

Créez des fichiers pour faire des expériences :

$ mkdir brackets
$ cd brackets
$ touch file1 file2 file3 file4 filea fileb filec file5 file6 file7

Les plages entre les crochets [] sont exprimées par un - :

$ ls
file1  file2  file3  file4  file5  file6  file7  filea  fileb  filec
$ ls file[1-2]
file1  file2
$ ls file[1-3]
file1  file2  file3

Plusieurs plages peuvent être spécifiées :

$ ls file[1-25-7]
file1  file2  file5  file6  file7
$ ls file[1-35-6a-c]
file1  file2  file3  file5  file6  filea  fileb  filec

Les crochets peuvent également être utilisés pour correspondre à un ensemble spécifique de caractères.

$ ls file[1a5]
file1  file5  filea

Vous pouvez également utiliser le caractère ^ comme premier caractère pour tout faire correspondre sauf certains caractères.

$ ls file[^a]
file1  file2  file3  file4  file5  file6  file7  fileb  filec

La dernière chose que nous aborderons dans cette leçon, ce sont les classes de caractères. Pour correspondre à une classe de caractères, vous utilisez [:nomclasse:]. Par exemple, pour utiliser la classe de chiffres, qui correspond aux chiffres, vous feriez quelque chose comme ceci :

$ ls file[[:digit:]]
file1  file2  file3  file4  file5  file6  file7
$ touch file1a file11
$ ls file[[:digit:]a]
file1  file2  file3  file4  file5  file6  file7  filea
$ ls file[[:digit:]]a
file1a

Le glob file[[:digit:]a], correspond à file suivi d’un chiffre ou d’un a.

Les classes de caractères prises en charge dépendent de votre région actuelle. POSIX requiert les classes de caractères suivantes pour toutes les régions :

[:alnum:]

Lettres et chiffres.

[:alpha:]

Lettres majuscules ou minuscules.

[:blank:]

Espaces et tabulations.

[:cntrl:]

Caractères de contrôle, par exemple : retour arrière, bell, NAK, Echap.

[:digit:]

Chiffres (0123456789).

[:graph:]

Les caractères graphiques (tous les caractères sauf ctrl et le caractère espace)

[:lower:]

Lettres minuscules (a-z).

[:print:]

Les caractères imprimables (alnum, ponct et le caractère espace).

[:punct:]

Les caractères de ponctuation, c’est-à-dire ! , & , ".

[:space:]

Les caractères d’espacement, par exemple les tabulations, les espaces, les lignes de rappel.

[:upper:]

Lettres majuscules (A-Z).

[:xdigit:]

Chiffres hexadécimaux (généralement 0123456789abcdefABCDEF).

Exercices Guidés

  1. Compte tenu de ce qui suit, sélectionnez les répertoires qui seraient créés par la commande mkdir -p /tmp/outfiles/text/today /tmp/infiles/text/today

    $ pwd
    /tmp
    $ find
    .
    ./outfiles
    ./outfiles/text

    /tmp

    /tmp/outfiles

    /tmp/outfiles/text

    /tmp/outfiles/text/today

    /tmp/infiles

    /tmp/infiles/text

    /tmp/infiles/text/today

  2. Que fait l’option -v pour mkdir, rm, et cp ?

  3. Que se passe-t-il si vous tentez accidentellement de copier trois fichiers sur la même ligne de commande vers un fichier qui existe déjà au lieu d’un répertoire ?

  4. Que se passe-t-il lorsque vous utilisez mv pour déplacer un répertoire dans lui-même ?

  5. Comment supprimer tous les fichiers de votre répertoire courant qui commencent par old ?

  6. Lequel des fichiers suivants correspondrait à log_[a-z]201?*_01.txt ?

    log_3_2017_Jan_01.txt

    log_+_2017_Feb_01.txt

    log_b_2007_Mar_01.txt

    log_f_201A_Wednesday_01.txt

  7. Créez quelques globs pour correspondre à la liste suivante de noms de fichiers :

    doc100
    doc200
    doc301
    doc401

Exercices d’Exploration

  1. Utilisez la page de manuel de cp pour savoir comment faire une copie d’un fichier et faire correspondre les autorisations et le temps de modification à l’original.

  2. Que fait la commande rmdir -p ? Expérimentez-la et expliquez en quoi elle diffère de rm -r.

  3. N’EXÉCUTEZ PAS CETTE COMMANDE : Que pensez-vous que le rm -ri /* fera ? (HONNÊTEMENT, N’ESSAYEZ PAS DE LE FAIRE ! )

  4. Outre l’utilisation de -i, est-il possible d’éviter que mv n’écrase les fichiers de destination ?

  5. Expliquez la commande cp -u.

Résumé

L’environnement de ligne de commande Linux fournit des outils pour gérer les fichiers. Parmi les plus utilisés, citons cp, mv, mkdir, rm et rmdir. Ces outils, combinés avec les globs, permettent aux utilisateurs de faire beaucoup de travaux très rapidement.

De nombreuses commandes ont une option -i, qui vous alerte avant de faire quelque chose. Cette option peut vous épargner bien des soucis si vous avez fait une faute de frappe.

Beaucoup de commandes ont une option -r. L’option -r signifie généralement récursion. En mathématiques et en informatique, une fonction récursive est une fonction qui s’utilise elle-même dans sa définition. En ce qui concerne les outils en ligne de commande, cela signifie généralement appliquer la commande à un répertoire et à tout ce qui s’y trouve.

Commandes utilisées dans cette leçon :

cat

Lie et affiche le contenu d’un fichier.

cp

Copie des fichiers ou des répertoires.

echo

Affiche une chaîne de caractères.

find

Parcoure une arborescence de système de fichiers et recherche les fichiers correspondant à un ensemble de critères spécifiques.

ls

Affiche les propriétés des fichiers et des répertoires et énumère le contenu d’un répertoire.

mkdir

Crée de nouveaux répertoires.

mv

Déplace ou renomme des fichiers ou des répertoires.

pwd

Affiche le répertoire de travail actuel.

rm

Supprime des fichiers ou des répertoires.

rmdir

Supprime des répertoires.

touch

Crée de nouveaux fichiers vides ou met à jour l’horodatage de modification d’un fichier existant.

Réponses aux Exercices Guidés

  1. Compte tenu de ce qui suit, sélectionnez les répertoires qui seraient créés par la commande mkdir -p /tmp/outfiles/text/today /tmp/infiles/text/today

    $ pwd
    /tmp
    $ find
    .
    ./outfiles
    ./outfiles/text

    Les répertoires marqués seraient créés. Les répertoires /tmp, /tmp/outfiles, et /tmp/outfiles/text existent déjà, donc mkdir les ignorera.

    /tmp

    /tmp/outfiles

    /tmp/outfiles/text

    /tmp/outfiles/text/today

    X

    /tmp/infiles

    X

    /tmp/infiles/text

    X

    /tmp/infiles/text/today

    X

  2. Que fait l’option -v pour mkdir, rm, et cp ?

    Généralement, l’option -v active le fonctionnement verbeux. Elle fait en sorte que les programmes respectifs affichent ce qu’ils font quand ils le font :

    $ rm -v a b
    removed 'a'
    removed 'b'
    $ mv -v a b
    'a' -> 'b'
    $ cp -v b c
    'b' -> 'c'
  3. Que se passe-t-il si vous tentez accidentellement de copier trois fichiers sur la même ligne de commande vers un fichier qui existe déjà au lieu d’un répertoire ?

    cp refusera de faire quoi que ce soit et émettra un message d’erreur :

    $ touch a b c d
    $ cp a b c d
    cp: target 'd' is not a directory
  4. Que se passe-t-il lorsque vous utilisez mv pour déplacer un répertoire dans lui-même ?

    Vous recevrez un message d’erreur vous indiquant que mv ne peut pas faire cela.

    $ mv a a
    mv: cannot move 'a' to a subdirectory of itself, 'a/a'
  5. Comment supprimer tous les fichiers de votre répertoire courant qui commencent par old ?

    You would use the glob old* with rm:

    $ rm old*
  6. Lequel des fichiers suivants correspondrait à log_[a-z]201?*_01.txt ?

    log_3_2017_Jan_01.txt

    log_+_2017_Feb_01.txt

    log_b_2007_Mar_01.txt

    log_f_201A_Wednesday_01.txt

    X

    $ ls log_[a-z]_201?_*_01.txt
    log_f_201A_Wednesday_01.txt

    log_[a-z] correspond à log_ suivi de n’importe quelle lettre minuscule, donc log_f_201A_Wednesday_01.txt et log_b_2007_Mar_01.txt correspondent tous deux. _201? correspond à n’importe quel caractère une fois, donc seul log_f_201A_Wednesday_01.txt correspond. Enfin, *_01.txt correspond à tout ce qui se termine par _01.txt, donc notre option restante correspond.

  7. Créez quelques globs pour correspondre à la liste suivante de noms de fichiers :

    doc100
    doc200
    doc301
    doc401

    Il existe plusieurs solutions. En voici quelques-unes :

    doc*
    doc[1-4]*
    doc?0?
    doc[1-4]0?

Réponses aux Exercices d’Exploration

  1. Utilisez la page de manuel de cp pour savoir comment faire une copie d’un fichier et faire correspondre les autorisations et le temps de modification à l’original.

    Vous utiliseriez l’option -p. Portion de la page de manuel :

    $ man cp
    -p     same as --preserve=mode,ownership,timestamps
    --preserve[=ATTR_LIST]
                  preserve the specified attributes (default: mode,ownership,time‐
                  stamps), if  possible  additional  attributes:  context,  links,
                  xattr, all
  2. Que fait la commande rmdir -p ? Expérimentez-la et expliquez en quoi elle diffère de rm -r.

    Elle fait en sorte que rmdir se comporte comme mkdir -p. Si on lui passe une arborescence de répertoires vides, elle les supprime tous.

    $ find
    .
    ./a
    ./a/b
    ./a/b/c
    $ rmdir -p a/b/c
    $ ls
  3. N’EXÉCUTEZ PAS CETTE COMMANDE : Que pensez-vous que rm -ri /* fera ? (SÉRIEUSEMENT, N’ESSAYEZ PAS DE LA FAIRE ! )

    Il supprimera tous les fichiers et répertoires accessibles en écriture par votre compte utilisateur. Cela inclut tous les systèmes de fichiers en réseau.

  4. Outre l’utilisation de -i, est-il possible d’éviter que mv n’écrase les fichiers de destination ?

    Oui, l’option -n ou --no-clobber empêche mv d’écraser les fichiers.

    $ cat a
    a
    $ cat b
    b
    $ mv -n a b
    $ cat b
    b
  5. Expliquer cp -u.

    L’option -u fait en sorte que cp ne copie un fichier que si la destination est manquante ou plus ancienne que le fichier source.

    $ ls -l
    total 24K
    drwxr-xr-x 123 emma student  12K Feb  2 05:34 ..
    drwxr-xr-x   2 emma student 4.0K Feb  2 06:56 .
    -rw-r--r--   1 emma student    2 Feb  2 06:56 a
    -rw-r--r--   1 emma student    2 Feb  2 07:00 b
    $ cat a
    a
    $ cat b
    b
    $ cp -u a b
    $ cat b
    b
    $ cp -u a c
    $ ls -l
    total 12
    -rw-r--r-- 1 emma student 2 Feb  2 06:56 a
    -rw-r--r-- 1 emma student 2 Feb  2 07:00 b
    -rw-r--r-- 1 emma student 2 Feb  2 07:00 c

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

3.1 Archivage de fichiers en ligne de commande (3.1 Leçon 1)

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.