inclui arquivos de pontos (.x) com o comando rsync -r

1

Eu tenho o seguinte comando:

rsync -r --exclude="node_modules" "/r2g_shared_dir/vamoot"/* "/home/node/.docker_r2g_cache/b640e7fd-27a7-4dd8-8ca8-5363a1c59c35"

Acabei de perceber que usar / * não copiará os arquivos de ponto (arquivos / pastas que começam com.) ...

Alguém sabe como posso incluir esses arquivos?

Eu assumo que o melhor jeito seria abrir mão da notação / * e usar

rsync -r --exclude="node_modules" "/r2g_shared_dir/vamoot" "/home/node/.docker_r2g_cache/b640e7fd-27a7-4dd8-8ca8-5363a1c59c35"

mas existe outra maneira?

    
por Alexander Mills 27.05.2018 / 22:51

2 respostas

1

Se isso é bash você pode apenas definir dotglob :

shopt -s dotglob

Isso não corresponde a . ou .. (em contraste com .* ).

Assim, o mesmo comando pode ser usado:

rsync -r --exclude="node_modules" "/r2g_shared_dir/vamoot"/* ...
    
por 27.05.2018 / 23:06
0

É melhor deixar o padrão correspondente ao rsync, então você não está dependendo do shell e das opções que o shell tem naquele momento.

Quando você faz:

rsync -a /some/dir/* host:/remote/dir/

você está realmente pedindo ao shell para expandir a parte /some/dir/* , para que o rsync seja realmente executado assim:

rsync -a /some/dir/adir /some/dir/afile /some/dir/anotherfile [etc] host:/remote/dir/

Isso geralmente é bastante semelhante ao que a intenção era, porém nem sempre como demonstrado pelo fato de que essa pergunta foi feita. Por isso, é melhor executar:

rsync -a /some/dir/ host:/remote/dir/

Agora o rsync (porque -a é a abreviação de -rlptgoD que inclui -r para recursão) percorre recursivamente o diretório /some/dir e sincroniza todo o seu conteúdo para /remote/dir no host remoto, incluindo qualquer ponto arquivos diretamente em /some/dir .

Quando o caminho de origem termina com uma barra / , os nomes de arquivos transferidos omitem qualquer parte do local de origem. Se /some/dir foi passado, você está dizendo para sincronizar explicitamente o diretório dir , incluindo o nome dele. É recomendável criar o hábito de adicionar a última barra em todos os momentos para evitar essa confusão, a menos que você realmente entenda o que está acontecendo.

    
por 29.05.2018 / 12:25