Opzioni del comando cp e sovrascrittura senza conferme | yes e barra rovesciata

Informativa sull'affiliazione v3.1
Informativa sull'affiliazione v3.2 (solo mobile)
Ambiente di testFamiglia RHELAlmaLinux 9.8account rootVerificato il 05/10/2026

cp chiede per ogni file se sovrascriverlo quando copi più file, e il lavoro si blocca. Il comando cp è l'abbreviazione di Copy e copia file e directory; questo articolo spiega l'uso di base, le opzioni e 2 modi per sovrascrivere tutto senza conferme.

Il comando cp sovrascrive senza chiedere un file con lo stesso nome nella destinazione. Per evitarlo è impostato [alias cp='cp -i'], così chiede conferma prima di sovrascrivere.

✅ Uso di base

La sintassi di base è la seguente.

cp -[opzioni] <origine: File o directory​> <destinazione: percorso o File o directory percorso​>

Scrivi prima cosa copiare, poi la destinazione o il nuovo nome.

Comando cp
# copia file > file 
cp file1 file2
# copia file > dentro una directory
cp file1 dir1/
# copia 2 file > dentro una directory
cp file1 file2 dir1/
 testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'

Per copiare una directory serve l'opzione -r, -R o -a.

  • -r/-R : copia ricorsiva di una directory e del contenuto
  • -a : copia ricorsiva che mantiene gli attributi (include -r)

✅ 2 modi per sovrascrivere tutto con cp

Il comando cp chiede [overwrite] perché per cp è impostato l'alias [cp -i].

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

Con uno o due file va bene, ma con molti devi rispondere per ognuno.

In quel caso i due metodi qui sotto sovrascrivono senza conferme.

yes | cp -ar /home/ ./

Il primo è mettere [yes |] davanti, che risponde y a ogni domanda così la copia prosegue. Il secondo è mettere una barra rovesciata [\] davanti al comando, che salta l'alias ed esegue il cp originale.

\cp -ar /home/ ./

✅ Opzioni del comando cp & simulatore

OpzioneDescrizione
-a--archiveCopiare mantenendo tutti i permessi, proprietario, gruppo e orari del file originale[mantiene permessi, proprietario, gruppo, orari e altro] + [-d : copia il link simbolico stesso] + [-R : copia ricorsiva delle directory]
-bSe il file di destinazione esiste già, ne fa un backup prima di copiare
-dSe l'origine è un link simbolico, copia il link stesso
-fSe il file di destinazione esiste, lo elimina forzatamente e copia
-i--interactiveChiede conferma all'utente prima di sovrascriverealias cp='cp -i'
-l(minuscola)Copia come hard link
-PCopia il link simbolico così com'è senza seguirlo
-pMantiene proprietario, gruppo, permessi e orari dell'originale
-r, -RCopia le directory ricorsivamente (incluse sottodirectory e file)L'opzione -r non è standard POSIX e può dare problemi con link simbolici e file di dispositivo.
-sCopia come link simbolico (l'origine va indicata con un percorso assoluto)
-uNon sovrascrive se il file di destinazione è più recente o uguale
-vStampa l'avanzamento della copia (verbose)Mostra un messaggio per ogni copia completata
-xNon copia quando origine e destinazione sono su file system diversi.
Simulatore del comando cpalias cp='cp -i'
[root@server work]#
Funziona solo nel tuo browser e non tocca file reali. Prova opzioni diverse di cp e controlla il risultato con ls, cat e diff. Usa ↑↓ per richiamare i comandi precedenti e digita uknew help per vedere i comandi disponibili.

🔲 -a: mantenere gli attributi dei file & copiare sottodirectory e file

La sola opzione [-a] basta per copiare le sottodirectory mantenendo gli attributi dei file originali. Alcuni script e strumenti di automazione però richiedono esplicitamente [-r], quindi a volte si aggiunge anche [-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 il link simbolico stesso]+[-R : copia ricorsiva delle directory]+[--preserve=all]

Elementi inclusi in --preserve=allDescrizione
modePermessi del file (rwx ecc.)
ownershipProprietario (user) e gruppo (group)
timestampsTimestamp come l'ora dell'ultima modifica
linksNumero di hard link (mantiene l'inode condiviso)
contextContesto di sicurezza SELinux
xattrAttributi estesi (metadati aggiuntivi salvati con il file)
allForma breve che include tutti gli elementi sopra

🔲 -u: copiare solo i file nuovi e modificati

  • Copia solo se nella destinazione non c'è un file con lo stesso nome, o quando l'origine è più recente
  • Usato spesso per backup e sincronizzazione
 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

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.