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 user@remote.com:/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

18
apenas deixar a barra final deve ser o suficiente
exussum

Respostas:


190

Experimentar rsync -av ~/foo/ user@remote.com:/var/www/bar/


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.


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

0

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

cd ~/foo 

Rode isto:

rsync -avz . user@remote.com:/var/www/bar
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.