Opciones del comando cp y cómo sobrescribir sin confirmación | yes y barra invertida

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (móvil)
Entorno de pruebaFamilia RHELAlmaLinux 9.8Cuenta rootVerificado el 2026-10-05

cp pregunta si quieres sobrescribir cada archivo cuando copias varios, y el trabajo se detiene. El comando cp, abreviatura de Copy, copia archivos y directorios. Este artículo repasa el uso básico, las opciones y dos formas de sobrescribir todo sin confirmación.

El comando cp sobrescribe sin preguntar un archivo del mismo nombre en el destino. Para evitarlo está definido [alias cp='cp -i'], de modo que pide confirmación antes de sobrescribir.

✅ Uso básico

La sintaxis básica es la siguiente.

cp -[opciones] <origen: archivo o directorio​> <destino: ruta o archivo o directorio (ruta)​>

Escribe primero lo que quieres copiar y después el destino o el nuevo nombre.

Comando cp
# Copiar un archivo a otro archivo 
cp file1 file2
# Copiar un archivo dentro de un directorio
cp file1 dir1/
# Copiar dos archivos dentro de un directorio
cp file1 file2 dir1/
 testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'

Para copiar un directorio hace falta la opción -r, -R o -a.

  • -r/-R : copia recursiva de un directorio y su contenido
  • -a : copia recursiva que conserva los atributos (incluye -r)

✅ Dos formas de sobrescribir todo con cp

Al ejecutar el comando cp aparece la pregunta [overwrite] porque cp tiene definido el alias [cp -i].

cp -a
cp: overwrite 'messages_ori'? y
~]# alias cp
alias cp='cp -i'

Con uno o dos archivos no importa, pero al copiar muchos hay que responder por cada uno.

En ese caso, los dos métodos siguientes sobrescriben sin confirmación.

yes | cp -ar /home/ ./

El primero consiste en anteponer [yes |], que responde y a cada pregunta y la copia sigue sin detenerse. El segundo consiste en anteponer una barra invertida [\] al comando, lo que omite el alias y ejecuta el cp original.

\cp -ar /home/ ./

✅ Opciones del comando cp y simulador

OpciónDescripción
-a--archiveCopia conservando permisos, propietario, grupo y fechas del archivo original[conserva permisos, propietario, grupo, fechas, etc.] + [-d : copia el enlace simbólico en sí] + [-R : copia directorios de forma recursiva]
-bSi el destino ya existe, hace una copia de seguridad del archivo antes de copiar
-dSi el origen es un enlace simbólico, copia el enlace en sí
-fSi el archivo de destino existe, lo elimina a la fuerza y copia
-i--interactivePide confirmación al usuario antes de sobrescribiralias cp='cp -i'
-l(minúscula)Copia como enlace duro
-PCopia el enlace simbólico tal cual, sin seguirlo
-pConserva propietario, grupo, permisos y fechas del original
-r, -RCopia directorios de forma recursiva (incluye subdirectorios y archivos)La opción -r no es estándar POSIX y puede dar problemas con enlaces simbólicos y archivos de dispositivo.
-sCopia como enlace simbólico (el origen debe indicarse con ruta absoluta)
-uNo sobrescribe si el archivo de destino es más reciente o igual
-vMuestra el progreso de la copia (verbose)Muestra un mensaje por cada copia completada
-xNo copia cuando el origen y el destino están en sistemas de archivos distintos.
Simulador del comando cpalias cp='cp -i'
[root@server work]#
Funciona solo en tu navegador y no toca ningún archivo real. Prueba distintas opciones de cp y comprueba el resultado con ls, cat y diff. Con ↑↓ recuperas comandos anteriores, y al escribir uknew help verás los comandos disponibles.

🔲 Opción -a: conservar atributos y copiar subdirectorios y archivos

La opción [-a] basta por sí sola para copiar subdirectorios conservando los atributos de los archivos originales. Aun así, algunos scripts y herramientas de automatización exigen [-r] de forma explícita, por lo que a veces se añade [-r] o [-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 : copia el enlace simbólico en sí]+[-R : copia directorios de forma recursiva]+[-⁠-preserve=all]

Elementos incluidos en --preserve=allDescripción
modePermisos del archivo (rwx, etc.)
ownershipPropietario (user) y grupo (group)
timestampsMarcas de tiempo, como la última modificación
linksNúmero de enlaces duros (mantiene el inode compartido)
contextContexto de seguridad de SELinux
xattrAtributos extendidos (metadatos adicionales guardados con el archivo)
allForma abreviada que incluye todos los elementos anteriores

🔲 Opción -u: copiar solo archivos nuevos o modificados

  • Copia solo si no hay un archivo del mismo nombre en el destino, o si el origen es más reciente
  • Se usa a menudo en copias de seguridad y sincronización
 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
Linux

ℹ️ Aviso de afiliados
El contenido de este sitio incluye enlaces de afiliado. Cuando un visitante compra un producto o servicio a través de uno de ellos, el sitio recibe una comisión del vendedor. El importe que paga el comprador(baja durante las promociones ↓)no aumenta. Los precios, descuentos y existencias publicados corresponden al momento de redacción y pueden variar, así que confírmalos con el vendedor antes de comprar. Los productos se eligen y evalúan con criterios propios, y las comisiones no influyen en el orden ni en el contenido de las reseñas.