Rsync copia el contenido del directorio pero no el directorio en sí

119

Estoy tratando de sincronizar dos contenidos de carpetas con un nombre diferente:

rsync -av ~/foo [email protected]:/var/www/bar

Me gustaría copiar el contenido de fooen barun host remoto, pero no el directorio en foosí. He intentado algo como foo/*, pero rsync no lo admite.

rsync siempre crea

/var/www/bar/foo
Tombart
fuente
18
solo dejar la barra al final debería ser suficiente
exussum

Respuestas:

190

Tratar rsync -av ~/foo/ [email protected]:/var/www/bar/

Protostomo
fuente
37
Este comportamiento es extraño, comparado con mvo cp.
zeekvfu
Parece extraño e inconsistente hacer que la barra final sea relevante solo para este comando en particular. Me pregunto por qué no se ha cambiado.
Luke Davis
39
En caso de que alguien también se pregunte por qué funciona esto: es el final /después del nombre del directorio.
Etienne Bruines
31

Es sencillo,

rsync /var/www/ /home/var- copia el contenido de / var / www / pero no la carpeta www en sí.

rsync /var/www /home/var- copia la carpeta www junto con todo su contenido.

La "/" marca la diferencia.

Marcelo Guedes
fuente
6
Esta debería ser la respuesta aceptada que realmente explica la diferencia
edi9999
29

No solo está relacionado con rsync, sino que cuando busca ejemplos sobre cómo usar un comando GNU / Linux, puede usar "eg", que muestra ejemplos explícitos. por ejemplo, está disponible aquí, con instrucciones sobre cómo instalarlo: https://github.com/srsudar/eg

El resultado eg rsynces el siguiente

# rsync


copy the folder source_dir and its content into destination_dir

    rsync -av source_dir destination_dir


copy the contents of source_dir (trailing slash) into destination_dir

    rsync -av source_dir/ destination_dir
Olivier
fuente
0

Navegue hasta el directorio que le gustaría copiar, entonces:

cd ~/foo 

Ejecuta esto:

rsync -avz . [email protected]:/var/www/bar
Dan612
fuente