将 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”而不是“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以满足您的需求。

相关内容