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コマンドを使用してこれら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%/*})"' \;

おすすめ記事