Site icon Maniac Geek

Copier des fichiers et des répertoires dans la ligne de commande Linux

La copie de fichiers est l’une des tâches les plus élémentaires mais cruciales que vous effectuerez régulièrement.

Linux a une commande cp dédiée pour copier à la fois les fichiers et les répertoires (dossiers).

Dans cette partie de la série Terminal Basics, vous apprendrez à copier des fichiers et des dossiers dans le terminal.

Continuons avec le septième chapitre de la série.

Copier des fichiers en ligne de commande Linux

Permettez-moi de vous montrer quelques exemples de copie de fichiers.

Copier un fichier dans un autre répertoire

Pour copier un fichier dans un autre répertoire, il vous suffit de suivre la syntaxe de commande indiquée :

cp Source_file Destination_directory

Par exemple, ici, j’ai copié un fichier nommé Hello.txt au répertoire nommé Tux:

Et comme vous pouvez le voir, le fichier a été copié avec succès dans le répertoire Tux.

Copiez le fichier mais renommez-le

Vous pouvez choisir de renommer le fichier lors de sa copie. Donnez simplement un nom différent au “fichier cible”.

cp Source_file Renamed_file

Pour référence, ici, j’ai copié un fichier nommé Hello.txt dans le même répertoire en le renommant Renamed_Hello.txt:

Pourquoi ferais-tu ça? Supposons que vous deviez modifier un fichier de configuration. Une bonne pratique consiste à faire une sauvegarde du fichier de configuration au même emplacement avant de le modifier. De cette façon, vous pouvez revenir à l’ancienne configuration si les choses ne se passent pas comme prévu.

Copier plusieurs fichiers vers un autre emplacement

Pour copier plusieurs fichiers dans un autre répertoire, exécutez la commande de la manière suivante :

cp File1 File2 File3 FileN Target_directory

Ici, je copie plusieurs fichiers vers un nouvel emplacement.

📋

Lorsque vous copiez plusieurs fichiers, il n’est pas possible de les renommer uniquement avec la commande cp.

Traiter les fichiers en double lors de la copie

Par défaut, la commande cp remplacera le fichier si un fichier portant le même nom existe dans le répertoire cible.

Pour éviter tout dépassement, vous pouvez utiliser le -n option avec la commande cp, et elle ne remplacera pas les fichiers existants :

cp -n Source_File Destination_directory

Par exemple, ici, j’ai essayé de copier deux fichiers qui étaient déjà là dans mon répertoire ciblé et utilisés -v option pour montrer ce qui est fait par la commande :

cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux

Copier des fichiers de manière interactive

Mais qu’en est-il lorsque vous souhaitez remplacer certains fichiers, alors que certains doivent rester intacts ?

Eh bien, vous pouvez utiliser la commande cp en mode interactif en utilisant le -i option, et il vous demandera à chaque fois si le fichier doit être remplacé ou non :

cp -i Source_file Destination_directory

🖥️

Pratiquez vous-même tous les exemples mentionnés ci-dessus. Vous savez déjà comment créer des fichiers et des dossiers, alors recréez tout.

Copier les répertoires en ligne de commande Linux

Il existe une commande mkdir pour créer de nouveaux répertoires, rmdir pour supprimer des répertoires (vides). Mais il n’y a pas de commande cpdir pour copier des répertoires.

Vous devrez utiliser la même commande cp mais avec l’option récursive -r pour copier un répertoire avec tout son contenu vers un autre emplacement :

cp -r Source_dir Target_dir

Par exemple, ici, j’ai copié un répertoire nommé IF pour LHB:

Mais il a copié tout le répertoire 🤨

Alors, que faites-vous lorsque vous souhaitez uniquement copier le contenu du répertoire, pas le répertoire lui-même ?

Voici ce que vous pouvez faire :

Copier uniquement le contenu d’un répertoire (pas le répertoire)

Pour copier uniquement le contenu du répertoire, pas le répertoire lui-même, vous ajoutez /. à la fin du nom du répertoire source :

cp -r Source_directory/. Destination_directory

Ici, je veux copier le contenu d’un répertoire nommé IF qui contient les trois fichiers suivants :

Et je vais exécuter la commande suivante pour copier le contenu du fichier du IF répertoire à LHB:

cp -r IF/. LHB

Vous pouvez également utiliser Source_directory/* ici.

Copier plusieurs répertoires

Pour copier plusieurs répertoires, vous devrez exécuter la commande de la manière suivante :

cp -r Dir1 Dir2 Dir3 DirN Destiniation_directory

Par exemple, ici, j’ai copié deux répertoires nommés IF et LU au LHB:

cp -r IF LU ~/LHB

Vous pouvez faire la même chose lorsque vous souhaitez copier des fichiers à partir de plusieurs répertoires mais pas du répertoire lui-même :

cp -r Dir1/. Dir2/. Dir3/. DirN/. Destination_directory

🖥️

Vous pouvez également renommer les répertoires de la même manière que vous avez renommé les fichiers.

Testez vos connaissances

Voyons maintenant dans quelle mesure vous vous souvenez des leçons apprises jusqu’à présent.

  • Créez un répertoire appelé copy_practice
  • Copiez le fichier /etc/services dans ce dossier nouvellement créé
  • Créez un dossier nommé secrets sous ce répertoire et copiez-y les fichiers /etc/passwd et /etc/services
  • Copiez le fichier services dans copy_practice dans le dossier secrets mais ne l’écrasez pas
  • Copiez le dossier secrets dans votre répertoire personnel
  • Supprimez les répertoires secrets et copy_practice

Cela vous donnerait un peu de pratique.

Ça se passe bien jusqu’ici. Vous avez appris pas mal de choses. Dans le chapitre suivant, vous verrez comment déplacer des fichiers et des dossiers avec la commande mv.

Source

Quitter la version mobile