Rsync copia o conteúdo do diretório, mas não o próprio diretório

119

Estou tentando sincronizar dois conteúdos de pastas com nomes diferentes:

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

Eu gostaria de copiar o conteúdo de fooem barum host remoto, mas não o diretório em foosi. Eu tentei algo parecido foo/*, mas o rsync não suporta isso.

rsync sempre cria

/var/www/bar/foo
Tombart
fonte
18
apenas deixar a barra final deve ser o suficiente
exussum

Respostas:

190

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

Protostome
fonte
37
Este comportamento é estranho, em comparação com mvou cp.
zeekvfu
Parece estranho e inconsistente tornar a barra final relevante apenas para este comando específico. Me pergunto por que não foi alterado.
Luke Davis
39
Caso alguém também esteja se perguntando por que isso funciona: é o final /após o nome do diretório.
Etienne Bruines de
31

É simples,

rsync /var/www/ /home/var- copia o conteúdo de / var / www / mas não a pasta www em si.

rsync /var/www /home/var- copia a pasta www junto com todo o seu conteúdo.

O "/" faz a diferença.

Marcelo Guedes
fonte
6
Esta deve ser a resposta aceita, o que realmente explica a diferença
edi9999
29

Não relacionado apenas ao rsync, mas quando estiver procurando por exemplos de como usar um comando GNU / Linux, você pode usar "eg", que exibe exemplos explícitos. por exemplo, está disponível aqui, com instruções sobre como instalá-lo: https://github.com/srsudar/eg

O resultado para eg rsyncé o seguinte

# 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
fonte
0

Navegue até o diretório que deseja copiar, para:

cd ~/foo 

Rode isto:

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