Rsync copie le contenu du répertoire mais pas le répertoire lui-même

120

J'essaye de synchroniser deux contenus de dossiers avec un nom différent:

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

Je voudrais copier le contenu de foodans barl'hôte distant, mais pas le répertoire foolui-même. J'ai essayé quelque chose comme foo/*, mais rsync ne le prend pas en charge.

rsync crée toujours

/var/www/bar/foo
Tombart
la source
18
il suffit de laisser la barre oblique
finale

Réponses:

190

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

Protostome
la source
37
Ce comportement est étrange, comparé à mvou cp.
zeekvfu
Cela semble étrange et incohérent de rendre la barre oblique de fin pertinente uniquement pour cette commande particulière. Je me demande pourquoi cela n'a pas été changé.
Luke Davis
39
Au cas où quelqu'un se demanderait également pourquoi cela fonctionne: c'est la fin /après le nom du répertoire.
Etienne Bruines
32

C'est simple,

rsync /var/www/ /home/var- copie le contenu de / var / www / mais pas le dossier www lui-même.

rsync /var/www /home/var- copie le dossier www avec tout son contenu.

Le "/" fait la différence.

Marcelo Guedes
la source
6
Cela devrait être la réponse acceptée qui explique vraiment la différence
edi9999
29

Non lié uniquement à rsync, mais lorsque vous cherchez des exemples sur la façon d'utiliser une commande GNU / Linux, vous pouvez utiliser "eg" qui affiche des exemples explicites. eg est disponible ici, avec des instructions sur la façon de l'installer: https://github.com/srsudar/eg

Le résultat pour eg rsyncest le suivant

# 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
la source
0

Naviguez dans le répertoire que vous souhaitez copier, donc:

cd ~/foo 

Lance ça:

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