將 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以滿足您的需求。

相關內容