Copier des fichiers volumineux avec conservation de la structure

LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à copier les fichiers de plus de 10 Ko à partir du répertoire /etc vers le répertoire /tmp/etc, tout en conservant la structure de répertoires. C'est une compétence utile pour gérer et organiser les fichiers sur un système Linux.

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer un script pour copier des fichiers en fonction de leur taille
  • Comment utiliser la commande find pour localiser les fichiers qui répondent à des critères spécifiques
  • Comment conserver la structure de répertoires lors de la copie de fichiers
  • Comment exécuter un script avec des privilèges élevés en utilisant sudo

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Automatiser le processus de copie de fichiers en fonction de leur taille
  • Conserver la structure de répertoires lors de la copie de fichiers
  • Utiliser efficacement la commande find pour localiser les fichiers qui répondent à des critères spécifiques
  • Exécuter des scripts avec des privilèges élevés pour accéder à des fichiers et répertoires protégés

Créer le script de copie

Dans cette étape, vous allez créer le script qui copiera les fichiers de plus de 10 Ko du répertoire /etc vers le répertoire /tmp/etc.

  1. Ouvrez le fichier copy.sh dans le répertoire /home/labex/project à l'aide d'un éditeur de texte.
  2. Ajoutez le code suivant au fichier :
#!/bin/zsh

## Ce script copie les fichiers de plus de 10 Ko d'un répertoire source vers un répertoire cible.

## Définissez le répertoire source et le répertoire cible
source_dir="/etc"
target_dir="/tmp"

## Créez le répertoire cible s'il n'existe pas
mkdir -p "$target_dir"

## Utilisez la commande find pour localiser les fichiers de plus de 10 Ko et les copier dans le répertoire cible
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;

echo "La copie des fichiers est terminée."
  1. Enregistrez le fichier.

Dans cette étape, vous avez créé le script copy.sh qui copiera les fichiers de plus de 10 Ko du répertoire /etc vers le répertoire /tmp/etc, tout en conservant la structure de répertoires.

Exécuter le script de copie

Dans cette étape, vous allez exécuter le script copy.sh pour copier les fichiers.

  1. Ouvrez un terminal et accédez au répertoire /home/labex/project.
  2. Exécutez le script à l'aide de la commande suivante :
sudo sh copy.sh

Cela exécutera le script avec des privilèges élevés, lui permettant de copier des fichiers auxquels l'utilisateur labex peut ne pas avoir accès.

  1. Attendez que le script se termine. Vous devriez voir le message "La copie des fichiers est terminée." lorsque le script est terminé.

Dans cette étape, vous avez exécuté le script copy.sh pour copier les fichiers de plus de 10 Ko du répertoire /etc vers le répertoire /tmp/etc.

Vérifier les fichiers copiés

Dans cette étape, vous allez vérifier que les fichiers ont été correctement copiés.

  1. Ouvrez un gestionnaire de fichiers et accédez au répertoire /tmp/etc.
  2. Observez la structure de répertoire et les fichiers qui ont été copiés. Vous devriez constater que la structure de répertoire a été conservée et que seuls les fichiers de plus de 10 Ko ont été copiés.
  3. Vous pouvez également utiliser la commande ls -l dans le terminal pour lister les fichiers et leurs tailles dans le répertoire /tmp/etc.

Dans cette étape, vous avez vérifié que les fichiers ont été correctement copiés du répertoire /etc vers le répertoire /tmp/etc.

Félicitations ! Vous avez réussi le projet de copie de fichiers de plus de 10 Ko du répertoire /etc vers le répertoire /tmp/etc, tout en conservant la structure de répertoire.

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires dans LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer