我有以下树结构。
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%/*})"' \;