find로 세미콜론을 피해야 하는 이유는 무엇입니까?

find로 세미콜론을 피해야 하는 이유는 무엇입니까?

저는 데비안에서 bash를 사용하고 있습니다. 나는 써야 해

find -iname "*mp3" -exec cp {}  /media/MP3Player/ \;

마지막 세미콜론을 벗어나지 않으면 오류가 발생합니다.

답변1

세미콜론을 피해야 합니다.현재의쉘은 이를 보지 않고 명령 구분 기호로 사용하며, 그런 다음 find이를 보고 사용하여 사용자가 보내는 명령을 종료할 수 있습니다 -exec.

또한 설명서의 관련 부분에도 지침이 있습니다.

-exec utility [argument ...] ;

[...]

표현식은 세미콜론( ;)으로 끝나야 합니다. 쉘에서 find를 호출하는 경우 세미콜론을 인용해야 할 수도 있습니다(그렇지 않으면 쉘이 이를 제어 연산자로 처리합니다).

참고: 내 find매뉴얼을 빠르게 검색하면 구문 예제가 표시됩니다 \;.

관련 정보