공백이 있는 파일을 찾고 복사하는 방법은 무엇입니까?

공백이 있는 파일을 찾고 복사하는 방법은 무엇입니까?

mp3하위 디렉터리(예: 현재 디렉터리)에서 파일을 찾아 복사하려고 합니다 . 내가 시도한 명령은 다음과 같습니다.

find . -name *.mp3  -ls | gawk '{printf("cp %s .\n", $11);}'

find명령은 올바르게 이스케이프된 모든 파일을 나열하지만 gawk문제가 있는 것 같습니다. 이 find명령은 예를 들어 다음 파일을 나열합니다.

8132326 7392 -rw-r--r--   1 alexander alexander  7566180 Nov 27 20:22 ./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

명령이 문자열 gawk로 간주되는 동안$11

./For

대신에

./For\ The\ Kids\ EP\ [12_\ Vinyl\ EP\ -\ DP003]/01\ A1\ For\ the\ Kids.mp3

왜 그런 겁니까? 그리고 이를 올바르게 처리하는 방법은 무엇입니까( 가 있든 없든 gawk)?

답변1

올바른 명령은

 find /folder/to/be/searched -type f -name '*.mp3' -exec cp "{}" /target/folder \;

더 간단하므로 오류가 발생할 가능성이 적습니다. 유일한 점은 상대 경로가 아닌 절대 경로를 사용해야 한다는 점입니다.

관련 정보