※ 업무하면서 습득한 내용들을 정리해 놓은 포스팅입니다 :P 추가로 궁금하신 점은 댓글로 남겨주시고 필요한 자료 있으면 요청주세요! 잘못된 내용이 있으면 고쳐주시면 감사하겠습니다. 자료 퍼가실 때는 출처 남겨주세요!
ο 목차
※ 코드 보는 방법 참고
ㅇ 달러 기호($)가 있는 경우 -> 리눅스 터미널에서 CLI 명령어 입력
ㅇ "=#" 기호가 있는 경우 -> psql 쉘에서 명령어 입력
ㅇ 꺽쇠가 하나 있는 경우(>) -> 윈도우 명령 프롬프트(cmd)에서 명령어 입력
ㅇ 꺽쇠가 세개 있는 경우(>>>) -> python 쉘에서 명령어 입력
1. find -exec 명령어 기본 형식
$ find 찾을경로 기타옵션들 -exec 명령어 {} 구분자
1) 찾을경로
- 지정되지 않는 경우 현재 디렉토리 및 하위 디렉토리 검색(default)
- 찾을경로가 옵션보다 먼저 사용되어야 하기 때문에 "find 기타옵션들 찾을경로" 형식으로 명령어를 사용하지 않도록 주의(!!!오류 발생!!!)
2) 기타옵션들
- name, type, user 등 특정 종류의 파일을 필터링 하기 위한 옵션
2. exec 옵션이란?
find 명령어의 옵션 중 하나로 find 명령어를 통해 찾은 파일 혹은 디렉터리에 일괄적으로 특정 작업을 해주기 위한 명령어
3. exex 옵션의 {} 란?
placeholder라고 하는데, 쉽게 말하면 find 명령어를 통해 찾은 결과물을 놓을 자리를 의미
4. exec 옵션의 \; 혹은 + 란?
구분자로 -exec 옵션을 통해 입력한 명령어의 끝을 명시적으로 find 명령어에게 알려주는 역할
다만 \; 와 + 구분자는 의미가 조금 달라서 상황에 맞게 구분해서 사용해야 합니다.
간단하게 설명하자면
1) \; 구분자는 찾은 모든 파일 개수만큼 명령어를 반복 실행
2) + 구분자는 찾은 모든 파일을 하나의 명령어에 넣고 실행
잘 이해가 안되는 분들을 위해 아래에서 세부적인 예시를 들어보겠습니다.
5. \; 구분자를 사용하는 경우 예시
1) 코드 예시
$ find -user root -type f -name "*.jsp" -exec rm -rf {} \;
=> a.jsp, b.jsp, c.jsp 라는 파일이 있다고 가정
2) 명령어 수행 동작
{} 가 있는 자리에 a.jsp, b.jsp, c.jsp를 넣어 각 파일에 대해 명령어를 파일 개수만큼 실행
rm -rf a.jsp
rm -rf b.jsp
rm -rf c.jsp
=> rm -rf 명령어를 총 세 번 반복
6. + 구분자를 사용하는 경우 예시
1) 코드 예시
$ find -user root -type f -name "*.jsp" -exec rm -rf {} +
2) 명령어 수행 동작
{} 가 있는 자리에 a.jsp, b.jsp, c.jsp를 한줄에 입력후 명령어를 한번 수행
rm -rf a.jsp b.jsp c.jsp
명령어를 한번만 수행해도 되는 경우라면 +를 사용하되, 명령어 별로 한번씩 수행해야 하는 경우에는 \;를 써주는 것이 작업 효율에 도움이 됩니다 :D
이 포스팅이 도움이 되셨다면 좋아요 부탁드려요~!ㅎㅎ 감사합니다
※ 좋아요와 구독은 큰 힘이 됩니다. 감사합니다.
'리눅스(Redhat) > 유용한 명령어' 카테고리의 다른 글
로그파일에서 특정 호스트, 특정 시간대 로그만 출력하기(sed, grep 활용) (0) | 2022.02.24 |
---|---|
여러 프로세스를 한번에 종료하기(ps, kill, grep) (2) | 2022.02.08 |
(vi) 스페이스를 탭으로, 탭을 스페이스로 변경하는 명령어 (0) | 2021.09.15 |
리눅스) 특정 문자, 문장을 포함하는 파일 검색 (0) | 2021.08.18 |
댓글