Linux copier fichier

4 mai 2026
ECRIT PAR L'équipe VirtuozIA

Linux copier fichier — Virtuozia

En bref : Sous Linux, la copie de fichiers repose principalement sur trois commandes : cp pour les copies locales, rsync pour les copies optimisées et les synchronisations, et scp pour les transferts sécurisés entre machines via SSH.La commande cp couvre l’essentiel des besoins courants ; rsync s’impose pour les grandes quantités de données et la synchronisation incrémentale — il ne retransfère que les fichiers modifiés ; scp et son successeur sftp gèrent les transferts réseau chiffrés.La maîtrise des options avancées — préservation des permissions, copie récursive, exclusion de motifs, gestion de la progression — transforme ces commandes en outils de gestion de fichiers professionnels.

Linux copier fichier : commandes cp, rsync et scp avec exemples pratiques

La copie de fichiers est l’une des opérations les plus fréquentes dans l’administration système Linux. Si l’interface graphique des environnements de bureau propose des opérations de copier-coller intuitives, la ligne de commande offre une puissance et une flexibilité sans équivalent : copie préservant les métadonnées, synchronisation incrémentale de plusieurs gigaoctets, transfert chiffré entre serveurs distants, exclusion de motifs de fichiers, reprise après interruption. Ce guide détaille les commandes essentielles pour copier des fichiers sous Linux — cp, rsync, scp et sftp — avec leurs options les plus utiles et des exemples couvrant les cas d’usage les plus fréquents.

  1. La commande cp : copier des fichiers en local
  2. rsync : copie optimisée et synchronisation
  3. scp et sftp : copie sécurisée via SSH
  4. Cas d’usage avancés et scripts de copie
  5. Questions fréquentes — Linux copier fichier

La commande cp : copier des fichiers en local

La commande cp — abréviation de copy — est la commande fondamentale pour copier des fichiers et des répertoires sous Linux. Disponible nativement sur toutes les distributions sans installation, elle fait partie du paquet GNU Coreutils et couvre l’ensemble des besoins de copie locale.

Syntaxe de base et exemples essentiels

# ─── Syntaxe générale ────────────────────────────────────────────────────────
cp [OPTIONS] SOURCE DESTINATION

# ─── Copier un fichier ────────────────────────────────────────────────────────

# Copier un fichier dans le répertoire courant avec un nouveau nom
cp rapport.pdf rapport_sauvegarde.pdf

# Copier un fichier dans un autre répertoire (même nom)
cp rapport.pdf /home/alice/Documents/

# Copier un fichier dans un autre répertoire avec un nouveau nom
cp rapport.pdf /home/alice/Documents/rapport_avril.pdf

# Copier plusieurs fichiers dans un répertoire cible
cp fichier1.txt fichier2.txt fichier3.txt /mnt/sauvegarde/

# Copier tous les fichiers correspondant à un motif
cp *.log /var/backup/logs/
cp rapport_*.pdf /home/alice/rapports/

# ─── Copier un répertoire ────────────────────────────────────────────────────

# Copier un répertoire et tout son contenu (-r ou -R pour récursif)
cp -r /home/alice/projets /mnt/sauvegarde/

# Copier le contenu d'un répertoire (sans le répertoire lui-même)
# Note : le / final dans la source copie le contenu
cp -r /home/alice/projets/ /mnt/sauvegarde/projets/

# ─── Afficher la progression ─────────────────────────────────────────────────

# Afficher chaque fichier copié (-v pour verbose)
cp -rv /home/alice/projets /mnt/sauvegarde/

# ─── Gestion des conflits ────────────────────────────────────────────────────

# Demander confirmation avant d'écraser un fichier existant (-i pour interactive)
cp -i rapport.pdf /mnt/sauvegarde/

# Ne jamais écraser un fichier existant (-n)
cp -n rapport.pdf /mnt/sauvegarde/

# Toujours écraser sans confirmation (-f pour force)
cp -f rapport.pdf /mnt/sauvegarde/

Préservation des métadonnées avec cp

# ─── Options de préservation ─────────────────────────────────────────────────

# Préserver les permissions, l'horodatage et les liens symboliques (-p)
cp -p fichier.txt /mnt/sauvegarde/

# Copie récursive avec préservation des attributs (-a = archive)
# -a équivaut à -dR --preserve=all
# Préserve : permissions, horodatages, liens symboliques,
#            propriétaires, groupes, ACL, attributs étendus
cp -a /home/alice/projets /mnt/sauvegarde/

# Préservation sélective des attributs (--preserve=)
cp --preserve=mode,timestamps fichier.txt /mnt/sauvegarde/
cp --preserve=all fichier.txt /mnt/sauvegarde/

# Copier en préservant les liens symboliques (sans les déréférencer)
cp -P lien_symbolique /mnt/sauvegarde/

# Copier en suivant les liens symboliques (copier la cible, pas le lien)
cp -L lien_symbolique /mnt/sauvegarde/

# ─── Tableau récapitulatif des options principales ───────────────────────────
# -r / -R   → Copie récursive des répertoires
# -a        → Archive (préserve tout : -dR --preserve=all)
# -p        → Préserve permissions, horodatages, propriétaires
# -v        → Verbeux (affiche chaque fichier copié)
# -i        → Interactif (demande confirmation avant écrasement)
# -n        → Ne pas écraser les fichiers existants
# -f        → Force (écrase sans confirmation)
# -u        → Copie uniquement si source plus récente que destination
# -l        → Crée des liens physiques au lieu de copier
# -s        → Crée des liens symboliques au lieu de copier
# -b        → Crée une sauvegarde des fichiers écrasés
# --backup=numbered → Sauvegarde numérotée (fichier~1~, fichier~2~)

Options avancées et cas d’usage spécifiques

# Copier uniquement les fichiers plus récents que leur copie destination (-u)
cp -u /home/alice/projets/* /mnt/sauvegarde/projets/

# Copier avec sauvegarde automatique des fichiers écrasés
cp --backup=numbered rapport.pdf /mnt/sauvegarde/
# Crée rapport.pdf.~1~ si rapport.pdf existait déjà

# Copier un répertoire en excluant certains fichiers
# (cp ne supporte pas --exclude nativement, utiliser rsync à la place)

# Copier en suivant les liens symboliques profonds (-H)
cp -Hr /home/alice /mnt/sauvegarde/

# Vérifier la copie avec somme de contrôle (--reflink pour systèmes COW)
# Sur systèmes de fichiers supportant copy-on-write (Btrfs, XFS, APFS)
cp --reflink=auto fichier_volumineux.iso /mnt/cible/

# Copier sans écraser, avec information sur les fichiers ignorés
cp -nv rapport.pdf /mnt/sauvegarde/

# Cloner une partition ou un disque avec dd (copie bit à bit)
# ATTENTION : opération destructive si source/destination confondues
sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress conv=fsync

🔍 Analyse
L’option -a (archive) est la plus utile pour les sauvegardes et les migrations de données importantes : elle combine -dR --preserve=all pour préserver l’ensemble des métadonnées (permissions UNIX, horodatages de modification et d’accès, propriétaires et groupes, liens symboliques, ACL et attributs étendus). Sans cette option, une copie de répertoire crée des fichiers appartenant à l’utilisateur qui exécute cp, avec l’horodatage de la copie plutôt que celui des fichiers originaux — une perte d’information potentiellement critique lors d’une restauration système.

rsync : copie optimisée et synchronisation sous Linux

rsync — Remote Sync — est l’outil de copie et de synchronisation de fichiers le plus puissant disponible sous Linux. Sa capacité à ne transférer que les différences entre la source et la destination — algorithme différentiel — en fait le choix optimal pour les sauvegardes incrémentales, les synchronisations récurrentes et les transferts de grandes quantités de données.

Installation et syntaxe de base

# Installation (généralement préinstallé sur la plupart des distributions)
sudo apt install rsync          # Debian/Ubuntu
sudo dnf install rsync          # Fedora/RHEL
sudo pacman -S rsync            # Arch Linux

# ─── Syntaxe générale ────────────────────────────────────────────────────────
rsync [OPTIONS] SOURCE DESTINATION

# ─── Copies locales basiques ─────────────────────────────────────────────────

# Copier un fichier (similaire à cp mais avec algorithme différentiel)
rsync fichier.txt /mnt/sauvegarde/

# Copier un répertoire entier
rsync -r /home/alice/projets /mnt/sauvegarde/

# Copier avec préservation des attributs + verbosité + progression
rsync -av /home/alice/projets /mnt/sauvegarde/

# L'option -a (archive) préserve :
# permissions (-p), horodatages (-t), propriétaires (-o),
# groupes (-g), liens symboliques (-l), fichiers spéciaux (-D)

# Copier en affichant la progression globale
rsync -av --progress /home/alice/projets /mnt/sauvegarde/

# Copier avec barre de progression condensée (--info=progress2)
rsync -av --info=progress2 /home/alice/projets /mnt/sauvegarde/

# ─── Importance du slash final ───────────────────────────────────────────────
# AVEC slash final sur la source : copie le CONTENU du répertoire
rsync -av /home/alice/projets/ /mnt/sauvegarde/projets/
# Résultat : /mnt/sauvegarde/projets/fichier1.txt, projets/fichier2.txt

# SANS slash final sur la source : copie le répertoire LUI-MÊME
rsync -av /home/alice/projets /mnt/sauvegarde/
# Résultat : /mnt/sauvegarde/projets/fichier1.txt, projets/fichier2.txt

Options rsync essentielles pour les sauvegardes

# ─── Synchronisation miroir (supprime les fichiers absents de la source) ─────
rsync -av --delete /home/alice/projets/ /mnt/sauvegarde/projets/
# ATTENTION : supprime les fichiers de destination non présents en source

# ─── Simulation (dry-run) : voir ce qui serait fait sans rien exécuter ───────
rsync -av --dry-run /home/alice/projets/ /mnt/sauvegarde/projets/
rsync -avn /home/alice/projets/ /mnt/sauvegarde/projets/  # -n = --dry-run

# ─── Exclusion de fichiers et répertoires ────────────────────────────────────
# Exclure un type de fichier
rsync -av --exclude='*.tmp' /home/alice/projets/ /mnt/sauvegarde/

# Exclure plusieurs motifs
rsync -av \
    --exclude='*.tmp' \
    --exclude='*.log' \
    --exclude='.git/' \
    --exclude='node_modules/' \
    /home/alice/projets/ /mnt/sauvegarde/

# Utiliser un fichier d'exclusion
cat > /tmp/exclusions.txt << 'EOF'
*.tmp
*.log
.git/
node_modules/
__pycache__/
.DS_Store
EOF
rsync -av --exclude-from=/tmp/exclusions.txt \
    /home/alice/projets/ /mnt/sauvegarde/

# ─── Reprise après interruption ──────────────────────────────────────────────
# Reprendre un transfert interrompu (pour les gros fichiers)
rsync -av --partial --progress /home/alice/fichier_volumineux.iso /mnt/backup/
# --partial : conserve les fichiers partiellement transférés pour reprise
# Raccourci : -P équivaut à --partial --progress

rsync -avP /home/alice/fichier_volumineux.iso /mnt/backup/

# ─── Compression pour les transferts réseau ──────────────────────────────────
# Activer la compression (-z) pour réduire la bande passante
rsync -avz /home/alice/projets/ utilisateur@serveur:/mnt/sauvegarde/

rsync pour les transferts réseau via SSH

# ─── Copier vers un serveur distant (push) ───────────────────────────────────
rsync -avz /home/alice/projets/ utilisateur@192.168.1.100:/backup/projets/

# ─── Copier depuis un serveur distant (pull) ─────────────────────────────────
rsync -avz utilisateur@192.168.1.100:/backup/projets/ /home/alice/projets/

# ─── Avec port SSH personnalisé ──────────────────────────────────────────────
rsync -avz -e "ssh -p 2222" /home/alice/projets/ \
    utilisateur@192.168.1.100:/backup/projets/

# ─── Avec clé SSH spécifique ─────────────────────────────────────────────────
rsync -avz -e "ssh -i ~/.ssh/ma_cle_privee" /home/alice/projets/ \
    utilisateur@192.168.1.100:/backup/projets/

# ─── Sauvegarde incrémentale avec horodatage ─────────────────────────────────
DATE=$(date +%Y%m%d_%H%M%S)
rsync -avz --link-dest=/backup/last/ \
    /home/alice/projets/ \
    /backup/${DATE}/
ln -sfn /backup/${DATE} /backup/last
# --link-dest : crée des liens physiques pour les fichiers identiques
# (permet des sauvegardes complètes apparentes sans duplication réelle)

# ─── Options rsync utiles ────────────────────────────────────────────────────
# -a        → Archive (préserve tout)
# -v        → Verbeux
# -z        → Compression pendant le transfert
# -P        → Progression + reprise (--partial --progress)
# -n        → Simulation (dry-run)
# --delete  → Supprime les fichiers destination absents de la source
# --exclude → Exclure des motifs
# --include → Inclure des motifs (utilisé avec --exclude)
# --bwlimit=KBPS → Limiter la bande passante (ex: --bwlimit=1000 = 1 Mo/s)
# --checksum→ Compare par somme de contrôle plutôt que taille/date
# --hard-links → Préserve les liens physiques
# --stats   → Affiche les statistiques de transfert

scp et sftp : copie sécurisée via SSH

scp — Secure Copy Protocol — est la commande traditionnelle pour transférer des fichiers entre machines via SSH — Secure Shell, protocole de communication sécurisé chiffré. Elle encapsule le transfert de fichiers dans une connexion SSH, garantissant le chiffrement des données en transit. sftp est son successeur recommandé pour les usages interactifs et offre plus de fonctionnalités.

La commande scp : transfert simple entre machines

# ─── Syntaxe scp ─────────────────────────────────────────────────────────────
scp [OPTIONS] SOURCE DESTINATION
# SOURCE ou DESTINATION peut être : [utilisateur@]hôte:/chemin/fichier

# ─── Copier un fichier local vers un serveur distant (push) ──────────────────
scp rapport.pdf alice@192.168.1.100:/home/alice/Documents/
scp rapport.pdf alice@serveur.exemple.com:~/Documents/

# ─── Copier un fichier depuis un serveur vers local (pull) ───────────────────
scp alice@192.168.1.100:/var/log/syslog /tmp/syslog_distant
scp alice@serveur.exemple.com:~/rapport.pdf /home/bob/

# ─── Copier un répertoire complet (-r pour récursif) ─────────────────────────
scp -r /home/alice/projets alice@192.168.1.100:/backup/
scp -r alice@192.168.1.100:/backup/projets /home/alice/

# ─── Copier entre deux serveurs distants ─────────────────────────────────────
scp alice@serveur1:/home/alice/fichier.txt bob@serveur2:/home/bob/

# ─── Options scp utiles ──────────────────────────────────────────────────────

# Port SSH personnalisé (-P avec majuscule, différent de rsync)
scp -P 2222 rapport.pdf alice@192.168.1.100:/backup/

# Clé SSH spécifique (-i)
scp -i ~/.ssh/ma_cle rapport.pdf alice@192.168.1.100:/backup/

# Préserver les horodatages et permissions (-p)
scp -p rapport.pdf alice@192.168.1.100:/backup/

# Compression pendant le transfert (-C)
scp -C rapport_volumineux.pdf alice@192.168.1.100:/backup/

# Afficher la progression (-v pour verbeux, -q pour silencieux)
scp -v rapport.pdf alice@192.168.1.100:/backup/

# Limiter la bande passante en Kbit/s (-l)
scp -l 8192 gros_fichier.tar.gz alice@192.168.1.100:/backup/
# -l 8192 = limite à 8192 Kbit/s ≈ 1 Mo/s

⚠️ Point de vigilance
scp est considéré comme déprécié dans OpenSSH depuis la version 8.8 (2021) en raison de problèmes de sécurité liés au protocole SCP originel (injection de fichiers non sollicités lors des copies depuis un serveur malveillant). Les versions récentes d’OpenSSH utilisent le protocole SFTP en arrière-plan même lors d’un appel scp, ce qui atténue les risques. Pour les nouveaux déploiements et les scripts, préférez sftp pour les usages interactifs ou rsync via SSH pour les transferts en lot. La commande scp reste néanmoins fonctionnelle et largement utilisée.

La commande sftp : transfert interactif et scriptable

# ─── Session sftp interactive ─────────────────────────────────────────────────
sftp alice@192.168.1.100
sftp -P 2222 alice@192.168.1.100        # Port SSH personnalisé

# ─── Commandes disponibles dans la session sftp ──────────────────────────────
# ls                    → Lister les fichiers côté serveur
# lls                   → Lister les fichiers côté local (l = local)
# pwd                   → Répertoire courant côté serveur
# lpwd                  → Répertoire courant côté local
# cd /chemin            → Changer de répertoire côté serveur
# lcd /chemin           → Changer de répertoire côté local
# get fichier.txt       → Télécharger un fichier
# get -r dossier/       → Télécharger un répertoire
# put fichier.txt       → Envoyer un fichier
# put -r dossier/       → Envoyer un répertoire
# mget *.txt            → Télécharger plusieurs fichiers (motif)
# mput *.txt            → Envoyer plusieurs fichiers (motif)
# mkdir nouveau_dossier → Créer un répertoire côté serveur
# rm fichier.txt        → Supprimer un fichier côté serveur
# rename ancien nouveau → Renommer côté serveur
# chmod 644 fichier.txt → Modifier les permissions côté serveur
# bye / exit / quit     → Quitter la session sftp

# ─── sftp non-interactif (via pipe ou Here Document) ─────────────────────────
# Télécharger un fichier sans session interactive
sftp alice@192.168.1.100:/backup/rapport.pdf /tmp/

# Via batch file (fichier de commandes)
cat > /tmp/sftp_commandes.txt << 'EOF'
cd /backup
get rapport.pdf /tmp/rapport.pdf
get config.tar.gz /tmp/config.tar.gz
bye
EOF
sftp -b /tmp/sftp_commandes.txt alice@192.168.1.100

Cas d’usage avancés et scripts de copie Linux

La combinaison des commandes de copie Linux avec des scripts Bash ouvre des possibilités d’automatisation puissantes pour la gestion de fichiers en production.

Comparatif rapide : quelle commande choisir ?

ScénarioCommande recommandéePourquoi
Copie ponctuelle d’un fichier en localcpSimple, universel, sans dépendances
Sauvegarde d’un répertoire avec préservationcp -aPréserve tous les attributs (mode archive)
Synchronisation récurrente de répertoiresrsync -avNe transfère que les différences (incrémental)
Transfert d’un fichier vers un serveur distantrsync -avz ou scprsync pour gros volumes, scp pour fichiers isolés
Copie très volumineuse avec reprise possiblersync -avP–partial permet la reprise après interruption
Navigation interactive sur un serveur distantsftpInterface FTP-like, sécurisée via SSH
Copie bit à bit d’un disque/partitionddCopie physique exacte (clonage, image disque)

Script de sauvegarde automatique avec rsync et rotation

#!/bin/bash
# Script de sauvegarde incrémentale avec rotation sur 7 jours
# Usage : ./sauvegarde.sh ou via cron

SOURCE="/home/alice/"
DESTINATION="/mnt/sauvegarde"
LOG="/var/log/sauvegarde.log"
DATE=$(date +%Y-%m-%d)
RETENTION_JOURS=7

# Créer le répertoire de destination avec la date du jour
DEST_DU_JOUR="${DESTINATION}/${DATE}"
mkdir -p "${DEST_DU_JOUR}"

# Référence de la dernière sauvegarde pour les liens physiques
DERNIERE_SAUVEGARDE="${DESTINATION}/derniere"

echo "=== Sauvegarde démarrée : $(date) ===" >> "${LOG}"

# Effectuer la sauvegarde incrémentale
if [ -L "${DERNIERE_SAUVEGARDE}" ]; then
    # Sauvegarde incrémentale : lien physique si fichier identique
    rsync -avz \
        --link-dest="${DERNIERE_SAUVEGARDE}" \
        --exclude='.cache/' \
        --exclude='*.tmp' \
        --exclude='.Trash*' \
        --log-file="${LOG}" \
        "${SOURCE}" \
        "${DEST_DU_JOUR}/"
else
    # Première sauvegarde (pas de référence)
    rsync -avz \
        --exclude='.cache/' \
        --exclude='*.tmp' \
        --log-file="${LOG}" \
        "${SOURCE}" \
        "${DEST_DU_JOUR}/"
fi

# Vérifier le succès
if [ $? -eq 0 ]; then
    # Mettre à jour le lien symbolique "derniere"
    ln -sfn "${DEST_DU_JOUR}" "${DERNIERE_SAUVEGARDE}"
    echo "Sauvegarde réussie : ${DEST_DU_JOUR}" >> "${LOG}"
else
    echo "ERREUR : Sauvegarde échouée" >> "${LOG}"
    exit 1
fi

# Rotation : supprimer les sauvegardes plus anciennes que RETENTION_JOURS
find "${DESTINATION}" \
    -maxdepth 1 \
    -type d \
    -name "????-??-??" \
    -mtime +${RETENTION_JOURS} \
    -exec rm -rf {} \;

echo "=== Sauvegarde terminée : $(date) ===" >> "${LOG}"

# ─── Cron pour exécution automatique ─────────────────────────────────────────
# Ajouter dans crontab (crontab -e) :
# 0 2 * * * /usr/local/bin/sauvegarde.sh  # Exécution à 2h du matin

Copier des fichiers en parallèle pour accélérer les transferts

# ─── Copie parallèle avec xargs ──────────────────────────────────────────────
# Copier plusieurs répertoires en parallèle (4 processus simultanés)
ls /home/alice/projets/ | xargs -P 4 -I {} \
    rsync -a /home/alice/projets/{} /mnt/sauvegarde/

# ─── Copie parallèle avec GNU parallel (si installé) ─────────────────────────
sudo apt install parallel
find /home/alice/images/ -name "*.jpg" | \
    parallel -j 8 cp {} /mnt/sauvegarde/images/

# ─── Copie rapide de nombreux petits fichiers avec tar ────────────────────────
# Plus efficace que cp pour des milliers de petits fichiers
tar cf - /home/alice/projets | tar xf - -C /mnt/sauvegarde/

# Avec compression et progression
tar czf - /home/alice/projets | \
    pv -s $(du -sb /home/alice/projets | cut -f1) | \
    tar xzf - -C /mnt/sauvegarde/

# ─── Vérifier l'intégrité d'une copie (somme de contrôle MD5) ────────────────
# Calculer les sommes MD5 de la source
find /home/alice/projets -type f -exec md5sum {} \; | \
    sort > /tmp/checksums_source.md5

# Calculer les sommes MD5 de la destination
find /mnt/sauvegarde/projets -type f -exec md5sum {} \; | \
    sed 's|/mnt/sauvegarde||g' | \
    sort > /tmp/checksums_dest.md5

# Comparer les deux fichiers de sommes
diff /tmp/checksums_source.md5 /tmp/checksums_dest.md5
# Aucune sortie = copie intègre

✅ À retenir
La règle de sélection entre cp, rsync et scp est simple. cp -a pour toute copie locale ponctuelle nécessitant la préservation des attributs. rsync -avP pour toute copie ou synchronisation volumineuse, récurrente ou vers un serveur distant via SSH — ses algorithmes différentiels et sa capacité de reprise le rendent systématiquement supérieur à cp pour ces cas. scp ou sftp pour les transferts réseau ponctuels vers un serveur SSH quand la simplicité prime sur les fonctionnalités avancées. Pour les transferts critiques, ajoutez systématiquement une vérification par somme de contrôle pour confirmer l’intégrité des données copiées.

Questions fréquentes — Linux copier fichier

Quelle est la différence entre cp et rsync pour copier des fichiers sous Linux ?

cp est la commande standard de copie locale : elle copie l’intégralité du fichier source vers la destination à chaque exécution, quelles que soient les modifications apportées depuis la dernière copie. rsync utilise un algorithme différentiel qui compare la source et la destination et ne transfère que les blocs de données modifiés — ce qui le rend significativement plus rapide pour les copies répétées de grands répertoires dont seule une partie des fichiers change entre deux exécutions. Pour une copie unique d’un fichier, cp est plus simple. Pour des sauvegardes récurrentes ou des synchronisations de répertoires, rsync est le choix optimal.

Comment copier un fichier sous Linux en préservant les permissions et le propriétaire ?

Pour préserver les permissions et le propriétaire lors d’une copie, utilisez l’option -a (archive) ou -p (preserve) avec cp. L’option -p préserve les permissions, l’horodatage et le propriétaire. L’option -a préserve tout — permissions, horodatages, propriétaires, groupes, liens symboliques et attributs étendus — et est l’option recommandée pour les copies de sauvegarde. La commande complète est : cp -a /source/ /destination/. Notez que pour préserver le propriétaire, cp doit être exécuté avec les droits root (sudo) si le propriétaire du fichier source est différent de l’utilisateur qui exécute la commande.

Comment copier uniquement les fichiers modifiés depuis la dernière copie sous Linux ?

L’option -u de cp copie uniquement les fichiers dont la date de modification est plus récente que leur version en destination : cp -u source/* destination/. Pour une approche plus robuste basée sur la comparaison du contenu réel plutôt que des horodatages, rsync avec l’option --checksum compare les sommes de contrôle des fichiers. La commande la plus courante pour une synchronisation incrémentale est rsync -avz --update source/ destination/--update (ou -u) saute les fichiers de destination plus récents que la source.

Comment copier un fichier Linux vers Windows via le réseau ?

Plusieurs méthodes permettent de copier des fichiers depuis Linux vers un partage Windows ou inversement. Si le partage Windows est monté dans le système de fichiers Linux via mount -t cifs, les commandes cp et rsync fonctionnent directement sur le partage monté comme un répertoire local. Si le transfert se fait via SSH (si un serveur SSH est installé sur Windows — via OpenSSH for Windows ou WSL), scp et rsync via SSH fonctionnent normalement. La commande smbclient permet également des transferts vers des partages SMB/CIFS Windows sans montage préalable : smbclient //192.168.1.100/partage -U utilisateur -c "put fichier.txt".

La maîtrise des commandes de copie de fichiers sous Linux — cp, rsync, scp et sftp — est une compétence fondamentale pour tout administrateur système ou développeur travaillant dans un environnement Linux. La commande cp -a couvre l’essentiel des copies locales avec préservation complète des attributs. rsync -avP est la solution optimale pour les synchronisations récurrentes, les sauvegardes incrémentales et les transferts volumineux grâce à son algorithme différentiel et sa capacité de reprise après interruption. scp reste utile pour les transferts ponctuels vers des serveurs distants via SSH. L’intégration de ces commandes dans des scripts Bash — avec gestion des erreurs, journalisation et rotation des sauvegardes — permet de construire des workflows de gestion de fichiers robustes et automatisés adaptés à tout environnement de production.

Laisser un commentaire