find -exec 에서 왜 항상 마지막에 \; 를 넣어야 할까요??

freezm7의 이미지

쓸데 없는 질문일 수 있는데요,
궁금해서 아시는 분이 계실 것 같아서 여쭤봅니다.

$ find . -name "blah" -exec rm -f {} \;

처럼 -exec 옵션을 쓰면 마지막에 \; 를 붙여줘야 하잖아요..

여기서 ; 가 아니라, \; 를 쓰는 이유는 알고 있습니다. shell 에 ; 를 처리해서 없애버리지 않도록하기 위해서죠...

그러니까 find 에게는 ; 가 마지막 인자로 넘어가게 되는데요...

대체 이 인자가 왜 필요한거죠??? 어차피 ; 이후에 다른 옵션을 쓸수도 없던데 말이죠.

쓸데 없는 궁금증이지만,,,, 계속 궁금증이 가시지 않아서 여쭤봅니다.

아시는 분 계신가요?

planetarium의 이미지

인용 :
어차피 ; 이후에 다른 옵션을 쓸수도 없던데 말이죠.

$ find . -name "blah" -exec rm -i {} \; -print
rm: 일반 빈 파일 `./blah'를 제거할까요? n
./blah

다른 옵션을 쓸 수 있습니다.

세이군의 이미지

\;는 exec 옵션의 끝을 알려주는 것입니다.
다시 말해서 -exec = "rm -i {}" 입니다.