Solución 1:
Sí, usa -r :
scp -rp sourcedirectory example@unixlinux.online:/path
- -r significa recursivo
- -p conserva las horas de modificación, las horas de acceso y los modos del archivo original.
Nota:Esto crea el sourcedirectory dentro de /path así los archivos estarán en /path/sourcedirectory
Solución 2:
Si bien las respuestas anteriores son técnicamente correctas, también debería considerar usar rsync en cambio. rsync compara los datos en los lados de envío y recepción con un mecanismo de diferencias para que no tenga que volver a enviar los datos que ya se enviaron previamente.
Si va a copiar algo a una máquina remota más de una vez, use rsync . En realidad, es bueno usar rsync cada vez porque tiene más controles para cosas como copiar permisos y propiedad de archivos y excluir ciertos archivos o directorios. En general:
$ rsync -av /local/dir/ server:/remote/dir/
sincronizará un directorio local con un directorio remoto. Si lo ejecuta por segunda vez y el contenido del directorio local no ha cambiado, no se transferirán datos, mucho más eficiente que ejecutar scp y copiando todo cada vez.
Además, rsync le permite recuperarse de transferencias interrumpidas muy fácilmente, a diferencia de scp .
Finalmente, versiones modernas de rsync de forma predeterminada se ejecuta sobre ssh, por lo que si scp ya está funcionando, rsync debería ser prácticamente un reemplazo directo.
Solución 3:
Eso es lo que dice el -r la opción es para. :)
Consulte la página de manual de scp para obtener más información si es necesario.
Solución 4:
Opción de copia recursiva '-r' (minúsculas)
scp -r
Que confundo con la opción de copia recursiva local regular '-R' (mayúsculas)
cp -R
Solución 5:
La mejor manera es usar rsync sobre SSH
rsync -a -essh /source/ example@unixlinux.online:/dest/
rsync -a -essh example@unixlinux.online:/source/ /dest/
Mis opciones favoritas son -Pazvessh --delete :
- -a :modo de archivo (incluye muchas opciones comunes predeterminadas, incluida la conservación de enlaces simbólicos)
- -z :comprimir
- -v :detallado :mostrar archivos
- -P:muestra el progreso como archivos terminados/archivos restantes
- -e ssh:hacer rsync en el protocolo ssh
- --delete:elimina archivos en el destino que ya no están en el origen