본문 바로가기

Linux/명령어

리눅스 find 명령어 -exec 옵션


find [경로] [옵션] [옵션조건]...


-exec
옵션 : find 명령어로 찾은 결과 대상에 대하여 원하는 명령어를 적용 시킬 수 있게 해줍니다.


형식)
-exec 명령어 {} \;
{} : find로 찾은 파일들
\; : -exec 옵션 내용의 끝을 나타냄



문제)
/usr/local/src 에 있는 HelloWorld.txt 파일을 찾아서 이 텍스트 파일의 내용을 /usr/local/src 의 위치에 new_HelloWorld.txt 파일로 생성시켜라.

# find /usr/local/src -name HelloWorld.txt -exec cat {} > /usr/local/src/new_HelloWorld.txt \;
# cat /usr/local/src/HelloWorld.txt     // 원본 텍스트파일 보기
# Hello World~!
# cat /usr/local/src/new_HelloWorld.txt    // find 명령어 -exec 옵션으로 생성한 텍스트 파일
# Hello World~!  // 원본 파일과 새로 생성된 파일의 내용이 같다


위 첫 번째 명령문으로 HelloWorld.txt 파일의 내용이 new_HelloWorld.txt 파일로 출력(복사)되었습니다. 


-exec cat {} > /usr/local/src/new_HelloWorld.txt \;


-exec 옵션 다음에 실행 할 명령어를 주고 "{}" 는 앞에 find 명령어로 찾은 결과 대상을 뜻 합니다. cat 명령어에서 ">" 를 이용하여 왼쪽 대상의 내용을 오른쪽으로 출력한다는 것을 명시합니다. 마지막에 "\;" 은 -exec 옵션과 짝을 이루어 옵션의 끝을 의미합니다. -exec ~ \; 형식이겠죠? ㅎㅎ
find로 찾은 대상을 "{}" 로 표현하기 때문에 결과 대상에 대해 얼마든지 다양한 명령문을 실행 시킬 수 있을 것입니다.

실제 리눅스를 하시면서 유용하게 사용하실 수 있을 것입니다. ^^