Estoy usando el comando scp para copiar algunos archivos a una PC remota, como lo hace con scp :)
Observo que el comportamiento predeterminado de una copia scp para archivos es sobrescribir cualquier archivo existente. Ahora quiero copiar una carpeta, así que básicamente hago lo mismo:
scp -r <source_path> user@myOtherPc:<dest_path>
Donde las partes en <> son las rutas de mi carpeta. Sin embargo, cuando ejecuto esto, aparece el mensaje "el archivo existe". ¿Hay alguna forma de evitar esto? algún tipo de sobreescritura forzada?
Gracias forraje
-v
. Además, ¿está utilizando una ruta absoluta o relativa en el lado de destino? Creo que si la carpeta de destino ya existe, va a crear la ruta de origen dentro de la carpeta de destino en lugar de sobrescribir (testdir/testdir
)Respuestas:
Como se dijo antes, scp felizmente sobrescribe cualquier archivo que ya esté presente.
El problema de "el archivo existe" solo puede ocurrir cuando tiene algún otro proceso (como un proceso scp concurrente u otra cosa) escribiendo carpetas y archivos en el mismo destino. Considere usar rsync en su lugar.
fuente
Al igual que Levans, no he podido replicar esto, pero ¿has considerado usar rsync sobre ssh? Si está copiando una gran cantidad de archivos, rsync puede ser una mejor opción que scp. Hay una serie de buenas guías en línea, como estas:
http://troy.jdmz.net/rsync/index.html https://calomel.org/rsync_tips.html
Ese primer enlace se ocupa de las copias de seguridad automáticas a través de cron, por lo que algunas de las instrucciones (como crear una clave ssh sin una frase de contraseña) pueden no ser relevantes para usted.
fuente
Recibirá este mensaje de error si el directorio de destino ya contiene un archivo con el mismo nombre que el directorio de origen que está intentando transferir. No puede tener un archivo con el mismo nombre que un directorio en el mismo directorio.
fuente