Rsync dos tipos de archivos en un comando?


13

¿Cómo escribirlos en una línea, también sin repetir el mismo camino?

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .

Respuestas:


18

Lo escribiría así:

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .

77
Esta es una técnica general que puede usar con cualquier comando. El shell repetirá el argumento, reemplazando la expresión de llaves con cada elemento de la lista. Se llama expansión de aparatos ortopédicos
Shawn J. Goff

11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(Tenga en cuenta que la final /en /folder/remote/, y la colocación de --exclude='*'después de la incluyen reglas, son importantes.) En conchas que la expansión del soporte de apoyo (por ejemplo, golpe del ksh, zsh):

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

Agregue --include='*/' --prune-empty-dirssi desea copiar archivos en subdirectorios también.


rsync 3 * parece fallar en * comodines, sin embargo, incluir | excluir funciona bien.
briankip
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.