如何使用linux命令将同名文件从一个位置复制到另一个位置多次?

如何使用linux命令将同名文件从一个位置复制到另一个位置多次?

我有以下树结构。

sl_top
|       |-- Pinmux_Formal_checklist
|       |   |-- Pinmux_Formal_checklist.config
|       |   |-- Pinmux_Formal_checklist.html
|       |   `-- rev1
|       |       |-- rev1.config
|       |       `-- rev1.html
|       |-- checklist10
|       |   |-- checklist10.config
|       |   |-- checklist10.html
|       |   `-- rev2
|       |       |-- rev2.config
|       |       `-- rev2.html
|       |-- checklist13
|       |   |-- checklist13.config
|       |   |-- checklist13.html
|       |   `-- rev2
|       |       |-- rev2.config
|       |       `-- rev2.html

这里清单 13 和清单 10 具有相同的文件名,并且正在将 .html 文件复制到另一个位置。我如何使用 linux 命令保存这两个副本。

我尝试过哪个命令?

find . -name '*.html' -exec cp -prv '{}' 'projects/html_files' ';

得到的输出:

rev1.html
rev2.html

预期输出:

rev1.html(Pinmux_Formal_checklist.html)
rev2.html(checklist10)
rev2.html(checklist13)

注意:括号中应显示受尊重的目录名称

答案1

如果这写入了您期望的 cp 命令,请echo从该行中删除:

find . -name '*.html' -exec /bin/sh -c 'file="{}"; echo cp -prv "$file" "projects/html_files/${file##*/}(${file%/*})"' \;

相关内容