次のツリー構造があります。
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コマンドを使用してこれら2つのコピーを保存するにはどうすればよいですか?
どのコマンドを試しましたか?
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%/*})"' \;