es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Copiar una lista de archivos desde un servidor remoto.

En general, puedo copiar archivos de forma individual desde el servidor remoto a mi localhost uno por uno; sin embargo, quiero extraer 200 archivos de una carpeta remota grande, y no es eficiente copiar uno por uno. Me pregunto si hay una manera más elegante de lograr esto.
Esto es lo que hice normalmente uno por uno:
scp remote/Users/folder/file.txt local/Desktop

He creado un archivo .txt que incluye los nombres de archivo que quiero copiar por scp.

¡Cualquier comentario sería apreciado!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esto sería utilizar el comando rsync en lugar de scp. rsync es una herramienta rápida y eficiente para copiar y sincronizar archivos entre máquinas, y puede manejar grandes cantidades de archivos y directorios con facilidad.

    Puedes usar la siguiente sintaxis de comando para copiar el contenido de la carpeta remota /Users/remote/folder a tu máquina local:

    rsync -avz remote:/Users/remote/folder/ local:/path/to/local/folder

    Aquí, -a se utiliza para archivar los archivos, preservando sus permisos, marcas de tiempo y otros atributos. -v habilita el modo detallado para mostrar el progreso de la sincronización, y -z comprime los archivos durante la transferencia para reducir el uso del ancho de banda de red.

    Para copiar solo los 200 archivos específicos enumerados en tu archivo .txt, puedes utilizar la opción --files-from con rsync. Primero, crea un archivo que contenga la lista de nombres de archivo que deseas copiar, con un nombre de archivo por línea, y guárdalo en tu máquina local. Digamos que el archivo se llama filelist.txt.

    Luego, ejecuta el siguiente comando:

    rsync -avz --files-from=filelist.txt remote:/Users/remote/folder/ local:/path/to/local/folder

    Este comando transferirá solo los archivos enumerados en filelist.txt desde el remoto /Users/remote/folder a tu máquina local, mientras se preservan sus atributos y se muestra el progreso.

Comments are closed.