GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puede scp copiar directorios recursivamente?

Solución 1:

Sí, usa -r :

scp -rp sourcedirectory [email protected]:/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/ [email protected]:/dest/

rsync -a -essh [email protected]:/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

Linux
  1. ¿Sincronizar directorios en ambas direcciones con Rsync?

  2. Copie archivos con SCP y Rsync

  3. Cómo copiar directorios recursivamente usando rsync mientras se excluyen archivos específicos

  4. ¿Por qué los archivos no pueden ser manipulados por inode?

  5. ¿Cómo puedo excluir directorios de grep -R?

Comando Rsync:20 ejemplos útiles en Linux

Cómo copiar un archivo a varios directorios en Linux

Cómo excluir archivos y directorios con Rsync

Copie archivos de forma segura con el comando SCP

¿Cómo puedo eliminar recursivamente directorios vacíos en mi directorio de inicio?

compare 2 directorios y copie las diferencias en un tercer directorio