Gostaria de copiar uma lista de arquivos no formato test/path/to/file/filename.xyz para o caminho de produção correspondente prod/path/to/file/filename.xyz. Se o caminho de teste e o caminho de produção forem iguais, exceto pela presença de "prod" em vez de "teste", posso usar o seguinte comando? Isso substituirá o arquivo de destino?
$ xargs -I % --arg-file=input.txt cp /test/% /prod/%
Responder1
Edite input.txt de forma que pareça (observe o +
)
+ /path/to/file/filename.xyz
Então,
rsync -amv \
--include '*/' \
--include-from input.txt \
--exclude '*' \
test/ prod/
Você também pode executá-lo diretamente editando o arquivo em tempo real, por exemplo:
rsync -amv \
--include '*/' \
--include-from <(sed 's/^/+ /' input.txt) \
--exclude '*' \
test/ prod/
Talvez seja necessário alterar a sed
expressão para atender às suas necessidades.