Копирование списка test/path/to/files в список prod/path/to/files

Копирование списка test/path/to/files в список prod/path/to/files

Я хотел бы скопировать список файлов в форме test/path/to/file/filename.xyz в соответствующий им путь производства prod/path/to/file/filename.xyz. Если путь теста и путь prod одинаковы, за исключением наличия "prod" вместо "test", могу ли я использовать следующую команду? Перезапишет ли это файл назначения?

$ xargs -I % --arg-file=input.txt cp /test/% /prod/%

решение1

Отредактируйте input.txt так, чтобы он выглядел так (обратите внимание на +)

+ /path/to/file/filename.xyz

Затем,

rsync -amv \
  --include '*/' \
  --include-from input.txt \
  --exclude '*' \
  test/ prod/

Вы также можете запустить его напрямую, отредактировав файл «на лету», например:

rsync -amv \
  --include '*/' \
  --include-from <(sed 's/^/+ /' input.txt) \
  --exclude '*' \
  test/ prod/

Возможно, вам придется изменить sedвыражение в соответствии с вашими потребностями.

Связанный контент