Opções do comando cp e sobrescrever tudo sem confirmação | yes e barra invertida

Aviso de afiliados v3.1
Aviso de afiliados v3.2 (somente celular)
Ambiente de testeFamília RHELAlmaLinux 9.8conta rootVerificado em 05/10/2026

cp pergunta, a cada arquivo, se deve sobrescrevê-lo quando você copia vários arquivos, e o trabalho trava. O comando cp é a abreviação de Copy e copia arquivos e diretórios; este post traz o uso básico, as opções e 2 jeitos de sobrescrever tudo sem confirmação.

O comando cp sobrescreve sem perguntar um arquivo de mesmo nome no destino. Para evitar isso, [alias cp='cp -i'] está configurado, e assim ele pede confirmação antes de sobrescrever.

✅ Uso básico

A sintaxe básica é a seguinte.

cp -[opções] <origem: Arquivo ou diretório​> <destino: caminho ou Arquivo ou diretório caminho​>

Escreva primeiro o que vai copiar e depois o destino ou o novo nome.

Comando cp
# copiar arquivo > arquivo 
cp file1 file2
# copiar arquivo > para dentro de um diretório
cp file1 dir1/
# copiar 2 arquivos > para dentro de um diretório
cp file1 file2 dir1/
 testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'

Para copiar um diretório é preciso a opção -r, -R ou -a.

  • -r/-R : copia recursiva de um diretório e do conteúdo
  • -a : cópia recursiva mantendo atributos (inclui -r)

✅ 2 jeitos de sobrescrever tudo com cp

O comando cp pergunta [overwrite] porque o alias [cp -i] está configurado para o cp.

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

Com um ou dois arquivos tudo bem, mas com muitos é preciso responder para cada um.

Nesse caso, os dois métodos abaixo sobrescrevem sem confirmação.

yes | cp -ar /home/ ./

O primeiro é pôr [yes |] na frente, o que responde y a cada pergunta e a cópia segue direto. O segundo é pôr uma barra invertida [\] antes do comando, o que pula o alias e roda o cp original.

\cp -ar /home/ ./

✅ Opções do comando cp & simulador

OpçãoDescrição
-a--archiveCopiar mantendo todas as permissões, dono, grupo e horários do arquivo original[mantém permissões, dono, grupo, horários e mais] + [-d : copia o próprio link simbólico] + [-R : copia diretórios recursivamente]
-bSe o arquivo de destino já existir, faz backup dele antes de copiar
-dSe a origem for um link simbólico, copia o próprio link
-fSe o arquivo de destino existir, apaga à força e copia
-i--interactivePede confirmação ao usuário antes de sobrescreveralias cp='cp -i'
-l(minúsculo)Copia como link físico
-PCopia o link simbólico como está, sem segui-lo
-pMantém dono, grupo, permissões e horários do original
-r, -RCopia diretórios recursivamente (inclui subdiretórios e arquivos)A opção -r não é padrão POSIX e pode dar problemas com links simbólicos e arquivos de dispositivo.
-sCopia como link simbólico (a origem deve ser um caminho absoluto)
-uNão sobrescreve quando o arquivo de destino é mais novo ou igual
-vMostra o andamento da cópia (verbose)Mostra uma mensagem para cada cópia concluída
-xNão copia quando origem e destino estão em sistemas de arquivos diferentes.
Simulador do comando cpalias cp='cp -i'
[root@server work]#
Roda só no seu navegador e não mexe em arquivos reais. Teste opções diferentes do cp e confira o resultado com ls, cat e diff. Use ↑↓ para recuperar comandos anteriores e digite uknew help para ver os comandos disponíveis.

🔲 -a: manter atributos dos arquivos & copiar subdiretórios e arquivos

Só a opção [-a] já basta para copiar subdiretórios mantendo os atributos dos arquivos originais. Mas alguns scripts e ferramentas de automação exigem [-r] explicitamente, então às vezes se junta [-r] ou [-R] também.

 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 o próprio link simbólico]+[-R : copia diretórios recursivamente]+[--preserve=all]

Itens incluídos em --preserve=allDescrição
modePermissões do arquivo (rwx etc.)
ownershipDono (user) e grupo (group)
timestampsCarimbos de data como a última modificação
linksNúmero de links físicos (mantém o inode compartilhado)
contextContexto de segurança do SELinux
xattrAtributos estendidos (metadados extras guardados com o arquivo)
allForma curta que inclui todos os itens acima

🔲 -u: copiar só arquivos novos e alterados

  • Copia só quando não há arquivo de mesmo nome no destino, ou quando a origem é mais nova
  • Muito usado em backups e sincronização
 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
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.