Commande cp sous Linux : copier fichiers et dossiers en local
Dans un terminal Linux, la commande cp duplique des fichiers sans supprimer l’original. Sa forme la plus courante est cp source destination : par exemple, cp rapport.txt rapport-copie.txt crée un second fichier dans le répertoire courant.
Pour copier plusieurs fichiers, indiquez leurs noms avant le répertoire cible : cp config.conf notes.txt /home/camille/archives/. La destination doit alors être un dossier existant. Les caractères génériques, comme l’astérisque, permettent aussi de sélectionner rapidement des fichiers correspondants.
Pour copier un dossier et son contenu, l’option -r active la récursivité. L’option -a est pratique pour une sauvegarde, car elle conserve la structure et plusieurs attributs, notamment les liens symboliques et les permissions, dans la mesure permise par les droits de l’utilisateur.
Une copie simple ne garantit pas la conservation de toutes les métadonnées. Avant de dupliquer un dossier de configuration ou des scripts exécutables, choisissez donc explicitement l’option adaptée plutôt que de supposer que les permissions resteront identiques.
Options utiles pour la copie de fichiers :
- -r : copie récursive des dossiers et de leur contenu
- -a : copie en mode archive, avec préservation étendue des attributs
- -i : demande confirmation avant certains écrasements
- -n : empêche l’écrasement des fichiers existants
- -u : copie si la destination est absente ou plus ancienne que la source
- -v : affiche les fichiers traités pendant l’opération
Copie de dossiers avec cp : options et précautions
Une fois la syntaxe de base comprise, la copie récursive demande surtout de contrôler le contenu et la destination. Sans -r ou -a, cp ne copie pas un dossier et signale généralement qu’il s’agit d’un répertoire.
Imaginez que Camille prépare une archive locale de son projet avant une mise à jour. Elle peut utiliser cp -a projet/ sauvegarde-projet/, puis comparer les deux répertoires. Pour une sélection de documents, une commande comme cp *.pdf archives/ copie les fichiers PDF du dossier courant.
Avant une opération volumineuse, vérifiez l’espace disponible avec df -h. Une copie interrompue par un disque plein peut laisser une destination incomplète, ce qui rend préférable une vérification après l’opération, surtout pour des données importantes.
Contrôles utiles avant une copie locale :
- Vérifier que la source existe et que son chemin est correct
- Confirmer que le répertoire de destination est bien celui souhaité
- Contrôler l’espace disponible avec df -h
- Protéger les fichiers existants avec -i ou -n
- Employer -a lorsque les attributs comptent pour la sauvegarde
Le tableau compare des commandes courantes, sans remplacer la vérification du contexte : les droits disponibles et le comportement voulu déterminent l’option à retenir.
| Commande | Usage | Point de vigilance |
|---|---|---|
| cp fichier cible | Copier un fichier localement | La destination peut être écrasée |
| cp -r dossier cible | Dupliquer un dossier et son contenu | Vérifier la taille et l’espace disque |
| cp -a dossier cible | Copier en préservant davantage d’attributs | Certains attributs dépendent des permissions |
| cp -n source cible | Éviter de remplacer une destination existante | Les fichiers déjà présents restent inchangés |
rsync ou cp : choisir selon la synchronisation de fichiers
Lorsque les mêmes données doivent être copiées plusieurs fois, rsync répond souvent mieux au besoin que cp. Il compare la source et la destination et peut éviter de retransférer inutilement les fichiers déjà à jour, ce qui est utile pour les sauvegardes récurrentes.
La commande rsync -av source/ destination/ associe le mode archive à un affichage détaillé. La barre oblique finale après le nom de la source signifie que le contenu du dossier est envoyé dans la destination ; sans elle, rsync peut créer le dossier source lui-même dans le répertoire cible.
Pour simuler une opération avant de l’exécuter, ajoutez -n, aussi appelé mode à blanc. Examinez attentivement la sortie, car l’option –delete peut supprimer dans la destination les éléments absents de la source.
Repères pour choisir entre les deux outils :
- cp : duplication locale ponctuelle et simple
- rsync : synchronisation répétée ou copie de grandes arborescences
- rsync -n : aperçu des changements sans les appliquer
- rsync –delete : alignement avec la source, avec suppression possible côté destination
| Besoin | Outil conseillé | Pourquoi |
|---|---|---|
| Dupliquer rapidement un fichier local | cp | Syntaxe courte et directe |
| Actualiser régulièrement un dossier | rsync | Compare les éléments de la source et de la cible |
| Prévisualiser une synchronisation | rsync -n | Permet d’inspecter les changements envisagés |
| Envoyer un fichier vers un serveur SSH | rsync ou scp | Les deux peuvent utiliser une connexion SSH |
scp sous Linux : transfert de fichiers avec SSH
Pour déplacer un fichier entre deux machines, scp utilise une connexion SSH. La syntaxe reprend l’ordre de cp : source d’abord, destination ensuite. Un emplacement distant s’écrit généralement utilisateur@serveur:/chemin.
Pour envoyer un fichier, utilisez par exemple scp rapport.txt camille@serveur:/tmp/. Pour le récupérer, inversez les arguments : scp camille@serveur:/var/log/application.log ./. Copier un dossier nécessite l’option -r, comme avec cp.
Attention à la différence entre -P et -p. La majuscule indique un port SSH personnalisé, par exemple scp -P 2222 fichier.txt utilisateur@serveur:/tmp/, tandis que la minuscule préserve certaines permissions et dates.
Gestes pratiques pour un transfert distant :
- Tester d’abord la connexion avec ssh utilisateur@serveur
- Employer -r pour envoyer un répertoire complet
- Utiliser -P pour préciser un port SSH différent
- Encadrer les chemins contenant des espaces avec des guillemets
- Vérifier les droits d’écriture sur le dossier distant
Le tableau ci-dessous résume les principales formes de transfert. Dans chaque cas, repérez le préfixe distant pour savoir quelle machine fournit le fichier.
| Direction | Exemple | Résultat |
|---|---|---|
| Local vers distant | scp fichier.txt user@hote:/tmp/ | Envoie le fichier vers l’hôte |
| Distant vers local | scp user@hote:/tmp/fichier.txt . | Récupère le fichier dans le dossier courant |
| Dossier vers distant | scp -r projet/ user@hote:/srv/ | Transfère le répertoire récursivement |
| Port SSH personnalisé | scp -P 2222 fichier.txt user@hote:/tmp/ | Utilise le port indiqué pour SSH |
Quand préférer cp, rsync, scp ou dd sous Linux
Ces commandes ne répondent pas au même niveau de besoin. cp convient à la copie locale, rsync à la synchronisation de fichiers, et scp aux transferts ponctuels entre machines accessibles en SSH.
dd intervient dans un autre contexte : il copie des blocs de données et sert notamment à créer ou écrire des images disque. Une erreur de périphérique dans sa commande peut endommager des données ; il ne remplace donc pas cp pour dupliquer des documents ordinaires.
Pour un transfert régulier ou volumineux vers un serveur, rsync peut être préférable, car il sait reprendre certaines opérations et limiter les données à recopier. Avec scp, une interruption peut obliger à relancer le transfert ; choisissez donc l’outil selon la fréquence et la taille des échanges.
En pratique, gardez ces repères :
- Copie locale simple : cp
- Copie locale avec attributs préservés : cp -a
- Sauvegarde ou synchronisation récurrente : rsync
- Transfert distant ponctuel via SSH : scp
- Image ou clonage de blocs disque : dd, avec vérification stricte des périphériques
Avant de valider une commande, relisez toujours la source, la destination et les options. Cette vérification courte évite les écrasements accidentels et aide à choisir l’outil adapté, que la copie passe par un terminal Linux local ou par le réseau.