Copie de fichiers Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Le système de fichiers Linux offre des outils puissants pour gérer vos fichiers et répertoires. L'une des commandes les plus essentielles que vous utiliserez régulièrement est la commande cp, qui vous permet de copier des fichiers et des répertoires d'un emplacement à un autre.

Dans ce labo (LabEx), vous apprendrez à utiliser la commande cp pour copier des fichiers individuels et plusieurs fichiers à la fois. Cette compétence fondamentale est cruciale pour sauvegarder des données, organiser votre système de fichiers et gérer efficacement votre environnement Linux.

À la fin de ce labo (LabEx), vous serez en mesure d'utiliser avec confiance la commande cp avec diverses options pour répondre à vos besoins de copie de fichiers.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") subgraph Lab Skills linux/echo -.-> lab-271253{{"Copie de fichiers Linux"}} linux/ls -.-> lab-271253{{"Copie de fichiers Linux"}} linux/touch -.-> lab-271253{{"Copie de fichiers Linux"}} linux/cp -.-> lab-271253{{"Copie de fichiers Linux"}} linux/cat -.-> lab-271253{{"Copie de fichiers Linux"}} linux/cd -.-> lab-271253{{"Copie de fichiers Linux"}} linux/mkdir -.-> lab-271253{{"Copie de fichiers Linux"}} end

Création de répertoires et de fichiers

Avant de pouvoir pratiquer la copie de fichiers, nous devons créer quelques répertoires et fichiers avec lesquels travailler. Dans cette étape, vous allez créer une structure de répertoires et quelques fichiers d'exemple.

Tout d'abord, accédez au répertoire de projet dans lequel vous allez travailler :

cd ~/project

Maintenant, créons un répertoire appelé data-files qui contiendra nos fichiers d'exemple :

mkdir data-files

Vous ne devriez voir aucun résultat après avoir exécuté cette commande, ce qui est normal pour de nombreuses commandes Linux lorsqu'elles s'exécutent avec succès.

Ensuite, naviguons dans ce nouveau répertoire :

cd data-files

Maintenant, créons trois fichiers texte vides que nous utiliserons pour nos exercices de copie :

touch apple.txt orange.txt grape.txt

La commande touch crée des fichiers vides s'ils n'existent pas, ou met à jour la date de modification s'ils existent déjà.

Vérifions que nos fichiers ont été correctement créés en listant le contenu du répertoire actuel :

ls -l

Vous devriez voir un résultat similaire à ceci :

total 0
-rw-r--r-- 1 labex labex 0 [date] apple.txt
-rw-r--r-- 1 labex labex 0 [date] grape.txt
-rw-r--r-- 1 labex labex 0 [date] orange.txt

Le résultat montre que nous avons créé avec succès trois fichiers vides (la taille des fichiers est de 0 octet).

Copie d'un seul fichier

Dans cette étape, vous apprendrez à copier un seul fichier d'un emplacement à un autre en utilisant la commande cp.

La syntaxe de base de la commande cp est la suivante :

cp [options] source_file destination

Où :

  • source_file est le fichier que vous souhaitez copier
  • destination est l'endroit où vous voulez copier le fichier (peut être un répertoire ou un nouveau nom de fichier)

Commençons par nous assurer que nous sommes dans le répertoire data-files :

cd ~/project/data-files

Maintenant, ajoutons du contenu à notre fichier apple.txt afin que nous puissions vérifier que le contenu est correctement copié :

echo "This is sample content for the apple file." > apple.txt

Le symbole > redirige la sortie de la commande echo vers le fichier, écrasant tout contenu existant.

Maintenant, copions le fichier apple.txt dans le répertoire parent avec un nouveau nom :

cp apple.txt ../apple_copy.txt

Décortiquons cette commande :

  • cp est la commande de copie
  • apple.txt est le fichier source que nous voulons copier
  • ../apple_copy.txt spécifie que nous voulons copier dans le répertoire parent (..) avec le nouveau nom de fichier apple_copy.txt

Vérifions que le fichier a été correctement copié en vérifiant son contenu :

cat ../apple_copy.txt

Vous devriez voir la sortie suivante :

This is sample content for the apple file.

Cela confirme que notre fichier a été copié avec succès avec son contenu intact.

Copie de plusieurs fichiers en une seule fois

Dans cette étape, vous apprendrez à copier plusieurs fichiers en une seule fois dans un nouveau répertoire. Cela est particulièrement utile lorsque vous avez besoin de sauvegarder ou d'organiser plusieurs fichiers simultanément.

Tout d'abord, naviguons de nouveau dans le répertoire de projet :

cd ~/project

Maintenant, créons un nouveau répertoire appelé backup où nous allons copier nos fichiers :

mkdir backup

Avant de copier les fichiers, ajoutons du contenu aux fichiers texte restants afin que nous puissions mieux vérifier le processus de copie :

echo "This is sample content for the orange file." > data-files/orange.txt
echo "This is sample content for the grape file." > data-files/grape.txt

Maintenant, copions tous les fichiers texte du répertoire data-files dans le répertoire backup en utilisant un modèle de caractères génériques (wildcard) :

cp data-files/*.txt backup/

Dans cette commande :

  • cp est la commande de copie
  • data-files/*.txt utilise le caractère générique * pour correspondre à tous les fichiers avec l'extension .txt dans le répertoire data-files
  • backup/ est le répertoire de destination où nous voulons copier les fichiers

Vérifions que tous les fichiers ont été correctement copiés en listant le contenu du répertoire de sauvegarde :

ls -l backup/

Vous devriez voir une sortie similaire à ceci :

total 12
-rw-r--r-- 1 labex labex 41 [date] apple.txt
-rw-r--r-- 1 labex labex 41 [date] grape.txt
-rw-r--r-- 1 labex labex 42 [date] orange.txt

Vérifions également le contenu d'un des fichiers copiés pour nous assurer que les données ont été correctement copiées :

cat backup/orange.txt

Vous devriez voir :

This is sample content for the orange file.

Cela confirme que tous nos fichiers ont été copiés avec succès dans le répertoire de sauvegarde avec leur contenu intact.

Options avancées de copie de fichiers

Dans cette étape, vous apprendrez quelques options utiles de la commande cp qui peuvent rendre vos tâches de copie de fichiers plus efficaces.

Commençons par naviguer de nouveau dans le répertoire de projet :

cd ~/project

Conservation des attributs de fichier avec -p

Lorsque vous copiez des fichiers, vous pouvez souhaiter conserver les attributs du fichier d'origine tels que les horodatages (timestamps), la propriété et les autorisations. L'option -p vous permet de faire cela :

cp -p data-files/apple.txt backup/apple_preserved.txt

Comparons le fichier d'origine et la copie conservée :

ls -l data-files/apple.txt backup/apple.txt backup/apple_preserved.txt

Vous remarquerez que backup/apple_preserved.txt a le même horodatage que le fichier d'origine, tandis que backup/apple.txt (que nous avons copié précédemment sans l'option -p) a un horodatage plus récent.

Création de copies récursives avec -r

Pour copier des répertoires avec leur contenu, vous devez utiliser l'option -r (récursive). Créons une structure de répertoires imbriqués pour démontrer cela :

mkdir -p data-files/nested/deep
echo "This is a nested file." > data-files/nested/nested_file.txt
echo "This is a deep nested file." > data-files/nested/deep/deep_file.txt

Maintenant, copions tout le répertoire data-files et son contenu vers un nouvel emplacement :

cp -r data-files data-files-backup

Vérifions que la structure de répertoires et les fichiers ont été correctement copiés :

find data-files-backup -type f | sort

Vous devriez voir une sortie listant tous les fichiers dans la structure de répertoires copiée :

data-files-backup/apple.txt
data-files-backup/grape.txt
data-files-backup/nested/deep/deep_file.txt
data-files-backup/nested/nested_file.txt
data-files-backup/orange.txt

Mode interactif avec -i

Lors de la copie de fichiers, vous risquez d'écraser accidentellement des fichiers existants. L'option -i (interactive) vous demande confirmation avant d'écraser un fichier :

cp -i data-files/apple.txt backup/apple.txt

Comme backup/apple.txt existe déjà, vous verrez une invite vous demandant si vous souhaitez l'écraser :

cp: overwrite 'backup/apple.txt'?

Vous pouvez répondre par y pour écraser ou n pour annuler.

Ces options avancées rendent la commande cp encore plus puissante et flexible pour vos besoins de gestion de fichiers.

Résumé

Dans ce laboratoire (lab), vous avez appris à utiliser la commande Linux cp pour copier efficacement des fichiers et des répertoires. Vous avez commencé par les bases de la création de répertoires et de fichiers, puis vous êtes passé à la copie de fichiers individuels et de plusieurs fichiers en une seule fois.

Concepts clés abordés :

  1. Copie de fichiers de base : Utilisation de la commande cp pour copier un seul fichier d'un emplacement à un autre.

    cp source_file destination
  2. Copie de plusieurs fichiers : Utilisation de caractères génériques (wildcards) pour copier plusieurs fichiers en une seule commande.

    cp source_directory/*.txt destination_directory/
  3. Options avancées :

    • -p : Conservation des attributs de fichier (horodatages, autorisations, etc.)
    • -r : Copie récursive de répertoires et de leur contenu
    • -i : Mode interactif pour éviter les écrasements accidentels

Ces compétences en matière de copie de fichiers sont fondamentales pour une gestion efficace des fichiers sous Linux. Que vous sauvegardiez des fichiers importants, organisiez vos répertoires ou déployiez des applications, la commande cp sera un outil essentiel dans votre boîte à outils Linux.

N'oubliez pas que la ligne de commande Linux propose de nombreux outils puissants pour la manipulation de fichiers, et la commande cp n'en est qu'un. Au fur et à mesure de votre progression dans le monde Linux, vous découvrirez comment combiner ces outils pour effectuer des opérations de fichiers complexes de manière efficace.