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

여기서 Listing 13과 Listing 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%/*})"' \;

관련 정보