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 にコピーしたいと思います。test パスと prod パスが、「test」ではなく「prod」であることを除いて同じである場合、次のコマンドを使用できますか? これにより、宛先ファイルが上書きされますか?

$ 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必要に応じて表現を変更する必要があるかもしれません。

関連情報