find
- 조건에 맞는 파일을 찾아 명령을 수행한다.
- 찾은 파일에 대해서 어떠한 액션을 취하라고 명령할 수도 있다.
- 기본 사용 방법 : find [OPTIONS] path EXPR
자주 사용되는 옵션
- -name : 이름으로 검색
- -regex : regex에 매치로 검색
- -empty : 빈 디렉터리 혹은 빈 검색
- -size : 사이즈로 검색(M, G로 표기 가능)
- -N : 이하
- +N : 이상
- -type: 파일의(리눅스가 지원하는 특수한 타입 포함) 타입으로 검색
- d : directory
- p : named pipe
- f : regular file
- l : softlink
- s : socket
- -perm : 퍼미션으로 검색
- mode : 정확히 일치하는 파일
- +mode : 모든 flag가 포함된 파일
- /mode : 어떤 flag라도 포함된 파일
액션
- -delete : 파일 삭제
- rm과 같다.
- -ls : ls –dils 명령 수행
- -print : 파일 이름 출력(디폴트 옵션)
- -printf : 파일 이름을 포맷에 맞게 출력
- 파일에 대한 어러 속성들을 우리가 지정한 format에 맞게 출력
- -exec : 주어진 명령 수행
- ;로 끝나야 한다.
- -execdir : 해당 디렉터리로 이동하여 명령 실행 (exec와 달리 파일이 위치한 디렉터리로 이동하여 명령 실행)
- -ok : 사용자에게 확인 후 exec (각각의 파일에 대해서 실행할지 말지 물어보고(y/n) 명령 수행)
- -okdir : 사용자에게 확인 후 실행 execdir(ok와 달리 해당 파일이 위치한 디렉토리로 이동하여 명령 실행)
실습
- find ./ : 현재 디렉터리의 모든 파일을 출력
- find ./ | wc -l : 현재 디렉토리의 파일 개수
- find . | grep eventdev_pipeline : 모든 파일중에 eventdev_pipline가 포함된 파일 추출
- find . -name "*.py" : 파이썬 스크립트 찾기
- find 'pwd' -name "*.py" : 절대경로까지 출력
- find 'pwd' -regextype egrep -regex '.*hash.*.c$' : 땡떙 hash 땡떙.c로 끝나는 파일 찾기
- find . -empty : 빈 디렉토리 출력
- find . -type d : 디렉토리 검색
- find . -perm 0644 : permission 644인 파일 찾기 find . -type f -name "*.py" -exec stat {} ; : 파이썬 스크립트 파일들의 stat을 {} 자리에 출력
grep
- 파일 내용 중 원하는 내용을 찾는다.
- grep [OPTIONS] PATTERN [FILE...]
자주 사용하는 옵션
- -r : recursive (하위 디렉터리까지)
- -i : ignore case
- -v : invert match (원래는 패턴이 매치되는 것을 찾는 건데, 패턴이 아닌 것들 찾기)
- -q : quiet mode (원하는 패턴이 있는지/없는지만 확인하고 싶을 때)
- echo $?로 성공 실패 여부 확인 가능
- 찾으면 0 리턴
- 없으면 1 리턴
실습
- grep stdio *.c : c파일 중에서 stdio가 있는 c파일 찾기
- grep "<for>" *.c : c파일 중에서 for라는 단어가 있는지 찾기
- for를 포함하는 단어 찾기 : grep for *.c
apropos
- man page 이름과 설명을 검색한다.
- 정확한 함수 이름이 기억나지 않을 때
자주 사용되는 옵션
- -s, --sections=LIST, --section=LIST : 탐색할 섹션을 colon으로 구분하여 입력
실습
- apropos print : 프린트와 관련된 커맨드 출력 (help부분도 같이 검색)
locate
- 파일의 위치를 찾아 보여준다.
- 모든 파일을 다 찾기에는 시간이 오래 걸리므로 인덱싱을 해놓는다.
- 단, updatedb가 저장해놓은 DB 파일 내에서 검색하므로 누락 파일이 생길 수 있는 단점이 있다.
- locate [OPTION]... PATTERN...
자주 사용되는 옵션
- -i, --ignore-case : 대소문자 구분 없이 검색
- -l, --limit, -n LIMIT : 출력 결과를 LIMIT 만큼만 출력
- --regex : PATTERN을 regex로 해석
실습
- locate main.c
which
- 실행 파일의 위치를 보여준다.
- locate과 달리 텍스트 파일은 검색되지 않고 실행파일만 보여준다.
- 옵션은 없음
실습
- which ls
인프런 - 리눅스 커맨드 라인 툴
'OS > Linux' 카테고리의 다른 글
리눅스 명령어 정리3 - 시스템 정보 (0) | 2022.02.27 |
---|---|
리눅스 명령어 정리1 - 텍스트 처리 (0) | 2021.09.05 |