Introduction
Le système de fichiers Linux fournit 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, 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, vous serez en mesure d'utiliser en toute confiance la commande cp avec diverses options pour répondre à vos besoins en matière de copie de fichiers.
Création de répertoires et de fichiers
Avant de pouvoir nous entraîner à copier des fichiers, nous devons créer des répertoires et des fichiers avec lesquels travailler. Dans cette étape, vous allez créer une structure de répertoires et quelques exemples de fichiers.
Tout d'abord, naviguez vers le répertoire du projet où vous travaillerez :
cd ~/project
Maintenant, créons un répertoire appelé data-files qui contiendra nos exemples de fichiers :
mkdir data-files
Vous ne devriez voir aucune sortie 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 l'heure de modification s'ils existent déjà.
Vérifions que nos fichiers ont été créés correctement en listant le contenu du répertoire courant :
ls -l
Vous devriez voir une sortie 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
La sortie montre que nous avons créé avec succès trois fichiers vides (la taille du fichier est de 0 octet).
À ce stade, votre structure de répertoires ressemble à ceci :
~/project/
└── data-files/
├── apple.txt
├── orange.txt
└── grape.txt
Nous travaillerons avec ces fichiers dans les étapes suivantes, et vous apprendrez à les copier vers différents emplacements.
Copie d'un seul fichier
Dans cette étape, vous apprendrez à copier un seul fichier d'un emplacement à un autre à l'aide de la commande cp.
La syntaxe de base de la commande cp est la suivante :
cp [options] fichier_source destination
Où :
fichier_sourceest le fichier que vous souhaitez copierdestinationest l'endroit où vous souhaitez copier le fichier (peut être un répertoire ou un nouveau nom de fichier)
Nous sommes actuellement dans le répertoire data-files. Ajoutons du contenu à notre fichier apple.txt afin de pouvoir vérifier que le contenu est copié correctement :
echo "This is sample content for the apple file." > apple.txt
Le symbole > redirige la sortie de la commande echo vers le fichier, en écrasant tout contenu existant.
Maintenant, copions le fichier apple.txt dans le répertoire parent (qui est ~/project) avec un nouveau nom :
cp apple.txt ../apple_copy.txt
Décomposons cette commande :
cpest la commande de copieapple.txtest le fichier source que nous voulons copier../apple_copy.txtspécifie que nous voulons copier dans le répertoire parent (..) avec le nouveau nom de fichierapple_copy.txt
Vérifions que le fichier a été copié correctement 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.
Après cette opération, votre structure de répertoires ressemble maintenant à ceci :
~/project/
├── data-files/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
└── apple_copy.txt
Copie de plusieurs fichiers simultanément
Dans cette étape, vous apprendrez à copier plusieurs fichiers à la fois vers un nouveau répertoire. Ceci est particulièrement utile lorsque vous devez sauvegarder ou organiser plusieurs fichiers simultanément.
Tout d'abord, revenons au répertoire du projet (puisque nous sommes actuellement dans le répertoire data-files) :
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 de 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 vers le répertoire backup en utilisant un caractère générique (wildcard) :
cp data-files/*.txt backup/
Dans cette commande :
cpest la commande de copiedata-files/*.txtutilise le caractère générique*pour correspondre à tous les fichiers avec l'extension.txtdans le répertoiredata-filesbackup/est le répertoire de destination où nous voulons copier les fichiers
Vérifions que tous les fichiers ont été copiés correctement en listant le contenu du répertoire backup :
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 de l'un des fichiers copiés pour nous assurer que les données ont été copiées correctement :
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 backup avec leur contenu intact.
Après cette opération, votre structure de répertoires ressemble maintenant à ceci :
~/project/
├── data-files/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
├── backup/
│ ├── apple.txt
│ ├── orange.txt
│ └── grape.txt
└── apple_copy.txt
Options avancées de copie de fichiers
Dans cette étape, vous découvrirez quelques options utiles de la commande cp qui peuvent rendre vos tâches de copie de fichiers plus efficaces.
Commençons par revenir au répertoire du projet :
cd ~/project
Préserver les attributs de fichier avec -p
Lorsque vous copiez des fichiers, vous pouvez souhaiter conserver les attributs d'origine du fichier, tels que les horodatages (timestamps), la propriété (ownership) et les permissions. L'option -p vous permet de le faire :
cp -p data-files/apple.txt backup/apple_preserved.txt
Comparons le fichier d'origine et la copie préservé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éer des 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ée pour illustrer 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 l'ensemble du 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é copiés correctement :
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 pouvez accidentellement écraser des fichiers existants. L'option -i (interactive) vous invite à confirmer avant d'écraser un fichier :
cp -i data-files/apple.txt backup/apple.txt
Étant donné que 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 TP (travaux pratiques), vous avez appris à utiliser la commande cp de Linux 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 avez progressé vers la copie de fichiers individuels et de plusieurs fichiers à la fois.
Concepts clés abordés :
Copie de fichiers de base : Utilisation de la commande
cppour copier un seul fichier d'un emplacement à un autre.cp source_file destinationCopie 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/Options avancées :
-p: Conservation des attributs de fichier (horodatages, permissions, etc.)-r: Copie récursive des 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 offre de nombreux outils puissants pour la manipulation de fichiers, et la commande cp n'en est qu'un parmi d'autres. Au fur et à mesure que vous poursuivrez votre parcours Linux, vous découvrirez comment ces outils peuvent être combinés pour effectuer efficacement des opérations complexes sur les fichiers.



