Copiar archivo

Necesito copiar un archivo de una carpeta a otra... Ahí no tengo problemas...
Resulta que en la carpeta destino ya existe un archivo con el mismo nombre, y necesito sobrescribirlo, pero que no me pregunte si "desea sobrescribir el archivo" sino que lo haga directamente
Es para hacer un script...

6 Respuestas

Respuesta
1
Para copiar sobrescribiendo el fichero de destino, el comando cp admite como parámetro "-f". Con este parámetro cp sobreescrivirá el fichero de destino, siempre y cuando tenga permisos de escritura. En caso contrario no sobreescribe el fichero y da un error por stderr. Ej: cp -f /etc/foo /tmp/foo. Si /tmp/foo tiene permisos de escritura, se sobreescribe con el fichero de /etc/foo. En caso contrario genera un mensaje del tipo "cp: no se puede borrar `/tmp/foo': Operación no permitida".
Respuesta
1
Lo que tu haces es un cp archivo_origen destino, pero para que no te pregunte nada, existe la opción -f que es forzar, entonces quedaría así: cp -f archivo_origen destino Y ya no te pregunta más nada.
A las ordenes para cualquier ayuda.
Guillermo.
Respuesta
1
En el script que me imagino harás en bash, pone cp -f
De todas formas cuando tengas ese tipo de dudas te recomiendo hacer un "man cp" por ahí tienes todos los flags del comando
Saludos y avisame si te fue bien
Respuesta
1
Se hace con la opción -f (de force):
Cp -f origen destino
Saludos
--
www.rhernando.net
Respuesta
1
La opcion es facil -f (forzar) . No hay mucho mas que decir. Solo que para la proxima hagas un
$ man cp donde te saldra todas las opciones de copiar. Igualmente es un placer ayudar.
Bye
Respuesta
1
Al parecer la distribución que estás usando ha agregado al script de inicio de tu usuario algunos alias.
Los alias son sustituciones que se hacen al momento de ejecutar los comandos.
Prueba lo siguiente, ejecuta este comando:
Alias
Y mira la salida.
Aquí te copio lo que dice el mío:
Alias
alias dir='ls --color=auto --format=vertical'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -l'
alias ls='ls --color=auto'
alias vdir='ls --color=auto --format=long'
como verás, cada vez que pongo ls, en relidad se ejecuta: 'ls --color=auto --format=long'
Ahora en tu caso, seguramente estás viendo algo como esto:
rm='rm -i'
cp='cp -i'
mv='mv -i'
La opción -i que agrega es la que pide confirmación para borrar, mover o sobreescribir.
Normalmente, estos alias están en el script de inicio del root en /root/.bashrc o puede que estén el script de inicio para todos los usuarios, /etc/profile.
La solución es sacar el -i de las sustituciones o directamente borrar o comentar las lineas que las contienen.
Cuidado, si estás como root, ubicado en /var y quieres borrar todos los archivos que empiezan con p, podrías escribir esto:
rm p*
sin embargo, si por error escribes
rm p *
Borrarás todos los que empiecen por p y todos los demás que no tengan extensión. Si eres root y no hay confirmación no podrás detener la catástrofe.
En fin, espero haber sido claro con las razones que tiene el sistema para pedirte confirmación ante el borrado, sobre todo si lo haces como root.
Yo personalmente utilizo el programa
Mc
(Midnight Commander) y cuando pasa lo que tu dices, pregunta si quieres sobreescribir cada archivo o todos.
La otra opción es desactivar temporalmente la sustitución haciendo:
alias rm='rm'
De esa forma, no te preguntara más, hata que cierres la sesión y abras una nueva, que será cuando lea nuevamente los alias de los archivos que te dije más arriba.
Espero haberte sido útil,
saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas