Commande cp sous Linux : options et écrasement sans confirmation | yes et \ (barre oblique inverse)

cp demande, pour chaque fichier, s'il faut l'écraser lorsque vous en copiez plusieurs, et le travail s'interrompt. La commande cp, abréviation de Copy, copie des fichiers et des répertoires ; cet article présente l'utilisation de base, les options et 2 méthodes pour tout écraser sans confirmation.
La commande cp écrase sans rien demander un fichier du même nom à la destination. Pour l'éviter, [alias cp=’cp -i’] est défini : une confirmation est demandée avant d'écraser.
✅ Utilisation de base
La syntaxe de base est la suivante.
cp -[options] <À copier : Fichier ou répertoire> <Destination : chemin ou Fichier ou Répertoire >Indiquez d'abord ce qu'il faut copier, puis la destination ou le nouveau nom.

# Copie fichier > fichier
cp file1 file2
# Copie fichier > dans un répertoire
cp file1 dir1/
# Copie de 2 fichiers > dans un répertoire
cp file1 file2 dir1/ testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'
Pour copier un répertoire, il faut l'option -r, -R ou -a.
- -r/-R : copie récursive du répertoire et de son contenu
- -a : copie récursive en conservant les attributs (inclut -r)
✅ 2 méthodes pour tout écraser avec la commande cp
Quand vous lancez la commande cp, [overwrite] vous est demandé, car l'alias [cp -i] est défini pour cp.
cp -a
cp: overwrite 'messages_ori'? y
~]# alias cp
alias cp='cp -i'Avec un ou deux fichiers, ce n'est pas gênant, mais pour copier beaucoup de fichiers, il faut répondre pour chacun, ce qui devient fastidieux.
Dans ce cas, les deux méthodes ci-dessous permettent d'écraser sans confirmation.
yes | cp -ar /home/ ./La première consiste à placer [yes |] devant : y est saisi automatiquement à chaque confirmation et la copie se poursuit. La seconde consiste à placer une barre oblique inverse [\] devant la commande : l'alias est contourné et la commande cp d'origine s'exécute.
\cp -ar /home/ ./✅ Options de la commande cp & simulateur
| Option | Description | |
|---|---|---|
| -a | --archiveCopie en conservant tous les droits, le propriétaire, le groupe, les horodatages, etc. du fichier d'origine[conserve droits, propriétaire, groupe, horodatages, etc.] + [-d : copie le lien symbolique lui-même] + [-R : copie récursive des répertoires] | |
| -b | Si la destination existe déjà, sauvegarde le fichier existant avant de copier | |
| -d | Si la source est un lien symbolique, copie le lien lui-même | |
| -f | Si le fichier de destination existe, le supprime de force puis copie | |
| -i | --interactiveDemande confirmation à l'utilisateur avant d'écraseralias cp='cp -i' | |
| -l(minuscule) | Copie sous forme de lien physique | |
| -P | Copie les liens symboliques tels quels, sans les suivre | |
| -p | Conserve tels quels le propriétaire, le groupe, les droits et les horodatages de l'original | |
| -r, -R | Copie les répertoires de façon récursive (sous-répertoires et fichiers compris)L'option -r n'est pas standard POSIX et peut poser problème avec les liens symboliques ou les fichiers de périphérique. | |
| -s | Copie sous forme de lien symbolique (la source doit être indiquée en chemin absolu) | |
| -u | N'écrase pas si le fichier de destination est plus récent ou identique | |
| -v | Affiche la progression de la copie (verbose)Option qui affiche un message pour chaque copie terminée | |
| -x | Ne copie pas si la source et la destination sont sur des systèmes de fichiers différents. |
🔲 Option -a : conserver les attributs des fichiers d'origine & copier les sous-répertoires (& fichiers)
Pour copier les sous-répertoires en conservant les attributs des fichiers d'origine, l'option [-a] suffit. Certains scripts ou outils d'automatisation exigent toutefois [-r] explicitement : on ajoute alors parfois [-r] ou [-R].
testuser]# cp -a dir1 dir2
testuser]# ll dir*
dir1:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
dir2:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
testuser]# [-d : copie le lien symbolique lui-même]+[-R : copie récursive des répertoires]+[--preserve=all]
| Ce que comprend --preserve=all | Description |
|---|---|
| mode | Droits du fichier (rwx, etc.) |
| ownership | Propriétaire (user) et groupe (group) |
| timestamps | Horodatages, comme la date de dernière modification |
| links | Nombre de liens physiques (partage du même inode conservé) |
| context | Contexte de sécurité SELinux |
| xattr | Attributs étendus (métadonnées stockées en plus du fichier) |
| all | Forme abrégée qui inclut d'un coup tous les éléments ci-dessus |
🔲 Option -u : copier seulement les fichiers nouveaux et modifiés
- Copie seulement si aucun fichier du même nom n'existe à la destination, ou si la source est plus récente
- Souvent utilisé pour les sauvegardes et la synchronisation
testuser]# cp -u file1 file2
testuser]# ll file*
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:30 file2
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.