Copiar archivos con ciertas extensiones con scp

19

Quiero copiar .jpgy .pngarchivos scp, pero hay archivos con diferentes extensiones en la misma carpeta desde la que estoy copiando. Estoy haciendo lo siguiente:

scp [email protected]:/folder/*.{jpg,png} .

Se me pide que ingrese mi contraseña para cada tipo de extensión. ¿Hay alguna manera de hacer esto de tal manera que ingrese mi contraseña solo una vez?

nitrato de sodio
fuente

Respuestas:

31

Simplemente reemplácelo con:

scp [email protected]:'/folder/*.{jpg,png}' .

Tenga en cuenta el par de comillas simples. En su caso, su shell local está evaluando la expresión, convirtiéndola realmente en:

scp [email protected]:/folder/*.jpg [email protected]:/folder/*.png .

de ahí las dos contraseñas solicitadas. En esta solución, el par de comillas simples lo protege de la evaluación por el shell local, por lo que es el shell remoto llamado por (el remoto) scp que está evaluando la expresión.

AB
fuente
¿Cómo puedo incluir todos los subdirectorios de ese directorio?
xxx ---
@ pushpen.paul Si no necesita seleccionar solo archivos png y jpg pero quiere copiar todo, entonces usarlo, por ejemplo, scp -r [email protected]:'/folder' . debería hacerlo. De lo contrario, si todavía desea copiar solo png y jpg en esos subdirectorios, probablemente no pueda usar scp o sftp (a menos que sftp / lftp con un posible script personalizado), pero en su lugar necesite ejecutar algo como ssh + un par de tar. Tendría que hacer su propia pregunta con las necesidades específicas entonces.
AB
7

Es mejor usar rsync para copiar operaciones entre servidores.

 rsync -avzh user@remoteip:/path/*.jpg [email protected]:/path/*.png localserverpath

Usando rsync solo pedirá la contraseña una vez.

También en rsync mientras transfiere el archivo, comprobará en la ubicación de destino si el archivo existe o no y también comprobará si el contenido es el mismo o no en la ubicación de origen y la ubicación de destino.

Si el archivo también existe en la ubicación de destino y el contenido también es el mismo, entonces no copiará ese archivo. Solo copiará los archivos que no existen en la ubicación de destino, por lo que reduce el tiempo de procesamiento.

rsync a menudo se usa como una herramienta de copia de seguridad incremental.

Praveen Kumar BS
fuente
8
No importa si se usa rsynco scp, el punto es que /folder/*.{jpg,png}debería citarse '/folder/*.{jpg,png}' .
αғsнιη