Come copiare o spostare i file senza che sia richiesto di sovrascrivere?


8

Cosa ho provato:

root@host [/home1]# cp -f hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C

Mi chiedono sempre se voglio sovrascrivere. L'uso di mv non funziona neanche. Quindi cosa dovrei fare?

Altre cose che ho provato:

root@host [/home1]# cp -rf hello /home3
cp: overwrite `/home3/hello/.buildpath'? y
cp: overwrite `/home3/hello/.bash_logout'? y
cp: overwrite `/home3/hello/.project'? ^C
root@host [/home1]# cp -force hello /home3
cp: invalid option -- 'o'
Try `cp --help' for more information.
root@host [/home1]# cp --remove-destination hello /home4
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination hello /home3
cp: omitting directory `hello'
root@host [/home1]# cp --remove-destination -r hello /home3
cp: overwrite `/home3/hello/.buildpath'? ^C
root@host [/home1]#

2
Potresti dare l'output di alias cp?
Raphael Ahrens,

2
Inoltre, type cpoltre ls -la uno dei file di destinazione possono fornire informazioni utili.
un CVn

cp è copia. Va bene, potrebbe essere un alias. Quindi qual è il comando?
user4951

Risposte:


13

cpsembra essere aliasato a qualcosa che sta causando problemi o è una funzione. È possibile rimuovere l'alias / funzione:

unalias cp
unset -f cp

Se preferisci semplicemente sovrascriverlo adesso, puoi usare il commandcomando per sovrascrivere qualsiasi definizione alias / funzione:

command cp [...]

Se preferisci rimuovere completamente questo, probabilmente dovresti cercare nei tuoi file di avvio di bash.


3
\cpeviterà anche l'alias.
sendmoreinfo,

Sì, hai ragione which cp => alias cp='cp -i; /bin/cp. Grazie Amazon!
Gerry,

8

Per forzare la sovrascrittura senza chiederti di usare il comando mv e l'opzione "-f", usa man per vedere le opzioni.

man mv:

   -f, --force
          do not prompt before overwriting

Esempio:

mv -f test.tmp test.txt

1

Prova cp -rv / sourcefileordirectory / Destinationfolder


non sarà il suo lavoro? Cosa significa -rv?
user4951

-rvsignifica ricorsivo e dettagliato. Quindi, questo dovrebbe copiare i file e le sottocartelle e inviare l'avanzamento al terminale.
JNat

1

Probabilmente hai un alias per cp. Puoi ignorare questo alias facendo:

\cp -f hello /home3

Questo ha l'avventura di non modificare la configurazione dei tuoi alias, in quanto la sovrascrive solo per questa chiamata.


0

Puoi usare yes, che è progettato per questo genere di cose. Stamperà ye risponderà automaticamente a queste richieste:

yes | cp -f hello /home3

0

basta eseguire alias cp=cpe sovrascriverà la destinazione senza chiedere in questa sessione. Se si desidera che sia memorizzato come comportamento standard, memorizzarlo nel proprio ~/.bashrc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.