Estoy tratando de usar el cp
comando y forzar una sobrescritura.
Lo he intentado cp -rf /foo/* /bar
, pero todavía se me pide que confirme cada sobrescritura.
fuente
Estoy tratando de usar el cp
comando y forzar una sobrescritura.
Lo he intentado cp -rf /foo/* /bar
, pero todavía se me pide que confirme cada sobrescritura.
Puede hacerlo yes | cp -rf xxx yyy
, pero mi gutfeeling dice que si lo hace como root - su .bashrc
o .profile
tiene un alias de cp
a cp -i
, los sistemas más modernos (principalmente RH-derivados) que hacen a los perfiles de raíz.
Puede verificar los alias existentes ejecutando alias
en el símbolo del sistema, o which cp
para verificar solo los alias cp
.
Si tiene un alias definido, la ejecución unalias cp
eliminará eso para la sesión actual, de lo contrario, puede eliminarlo de su perfil de shell.
Puede omitir temporalmente un alias y usar la versión sin alias de un comando con el prefijo \
, p. Ej.\cp whatever
¯\_(ツ)_/¯
respecto.(primarily RH-derivatives)
comentario :)unalias cp
y copiar lo que necesite copiar, puede volver a establecer el alias a su valor predeterminado haciendoalias cp='cp -i'
. Después de lo cual, ejecutealias cp
para que pueda verificar que ha vuelto al alias predeterminado.Esto probablemente es causado por
cp
estar alias a algo asícp -i
. Llamarcp
directamente debería funcionar:Otra forma de evitar esto es usar el
yes
comando:fuente
yes
comando. Divertidísimo. Y algún día puedo usarlo.Como algunas de las otras respuestas han dicho, es probable que utilice un alias en algún lugar que se asigna
cp
acp -i
o algo similar. Puede ejecutar un comando sin ningún alias precediéndolo con una barra diagonal inversa. En tu caso, intentaLa barra invertida desactivará temporalmente cualquier alias que haya llamado
cp
.fuente
cp
,\cp
invocará el comandocp
. Esto parece ser el equivalente de corrercommand cp
.Probablemente tengas un alias en alguna parte, asignando
cp
acp -i
; porque con la configuración predeterminada,cp
no pedirá sobrescribir. Comprueba tu.bashrc
, tu.profile
etc.Consulte la página de manual de cp : solo cuando
-i
se especifique el parámetro, secp
solicitará antes de sobrescribir.Puede verificar esto mediante el
alias
comando:Para definir el alias, use:
fuente
Como han dicho otras respuestas, esto podría suceder si
cp
es un alias decp -i
.Puede agregar un
\
antes delcp
comando para usarlo sin alias.fuente
Por defecto
cp
tiene aliase acp -i
. Puede verificarlo, escribiralias
y puede ver algunos como:Para resolver este problema, simplemente use el
/bin/cp /from /to
comandocp /from /to
fuente
puedes usar este comando también:
cp -ru /zzz/zzz/* /xxx/xxx
aunque actualizaría su archivo existente con el más nuevo.
fuente
cp
generalmente tiene un alias como estesi está seguro de que desea sobrescribir, use esto:
fuente
encontré esto
Fuente: /superuser/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
fuente
Así que me encuentro mucho con esto porque sigo alias cp
cp -iv
, y encontré un buen truco. Resulta que mientras-i
y-n
tanto cancelar directivas de sobreescritura anteriores,-f
no lo hace. Sin embargo, si lo usa-nf
agrega la capacidad de borrar el-i
. Entonces:Bastante bien, ¿eh? / necropost
fuente
También funciona.
fuente
Otra forma de llamar al comando sin el alias es usar el
command
builtin en bash.command cp -rf /zzz/zzz/*
fuente
-n es "no sobreescribir" pero su pregunta es totalmente opuesta a lo que respondiste.
Para evitar esta confirmación, simplemente puede ejecutar el comando cp con la ruta absoluta, evitará el alias.
/ bin / cp destino del archivo fuente
fuente
Si desea mantener el alias a nivel global tal como está y solo desea cambiar su script.
Solo usa:
alias cp = cp
y luego escribe tus comandos de seguimiento.
fuente
Simplemente utilicé unalias para eliminar el alias "cp -i", luego hice la copia y luego volví a configurar el alias. :
No es el código más bonito, pero fácil de configurar y eficiente. También verifico que el alias ya está retrasado con un simple
fuente
No es
cp -i
. Si no desea que se le pida confirmación, escp -n
; por ejemplo:O en el caso de directorios / carpetas es:
fuente
cp -i
, lo que significa que estaban tratando de superar el valor predeterminado y forzar una sobrescritura. Parece que puede haber confundido que por ser la sintaxis sugerido, pero-n
será evitar una sobrescritura.