Linux Command Line Tools - 검색

find

이름이나 속성 등의 조건에 맞는 파일을 찾아 명령 수행

find [OPTION] path EXPR

자주 사용되는 옵션

조건

  • -name # 이름 검색, 가장 많이 사용
  • -regex # regex에 매치로 검색
  • -empty # 빈 디렉토리 혹은 빈 파일 검색
  • -size # 사이즈 검색 (M, G 표기 가능)
    • -N # 이하
    • +N # 이상
  • -perm # 퍼미션 검색
    • mode # 정확히 일치하는 파일
    • +mode # 모든 flag가 포함된 파일
    • /mode # 어떤 flag라도 포함된 파일
  • -type # 파일 타입 검색
    • d # directory
    • p # named pipe
    • f # regular file
    • l # softdrink
    • s # socket

액션

  • -delete # 파일 삭제
  • -ls # ls -dils 명령 수행
  • -print # 파일 이름 출력
  • -printf # 파일 이름을 포맷에 맞게 출력
  • -exec # 주어진 명령 수행
  • -execdir # 해당 디렉토리로 이동하여 명령 실행
  • -ok # 사용자 확인 후 exec
  • -okdir # 사용자 확인 후 실행 execdir

e.g.

  • find . -name “*.py” # 현재 디렉토리에서 py 파일 찾기
  • find . -regextype egrep -regex ‘.*hash.*.py$’ # $ 파일의 끝을 명시함. hash 앞뒤로 글이 있는 py 파일
  • find . -empty
  • find . -type
  • find . -perm 0644 wc -l
  • find . -perm /u+x # owner 실행권한이 포함된 파일을 출력 / find: -perm: /u+x: illegal mode string

  • find . -perm /001 -ls # -perm: /001: illegal mode string

  • find . -name -exec {} \;
  • find . -name -execdir {} \;
  • find . -name -ok rm -f {} \; # 안전하게 파일 삭제 가능

grep

파일 내용 중 원하는 내용 찾기

grep [OPTION] PATTERN [FILE…]

자주 사용되는 옵션

  • -r # recursive
  • -i # ignore case
  • -v # invert match # 패턴과 매치가 되지 않는 걸 찾음
  • -q # quiet mode # 성공.실패만 판단하고 싶을 때

e.g.

  • grep PATTERN *.py # py 파일에 PATTERN 이 포함된 걸 찾아라
  • grep PATTERN *.py awk -F: ‘{print $1}’ sort -u # 패턴이 들어있는 파일 검색 후 awk 명령어로 파일 이름 분류 후 sort로 unique 한 것만 출력
  • echo $? # 최근에 실행된 명령어, 함수, 스크립트 자식의 종료 상태 / 0 = 성공
  • grep “\<for\>” *.py # 단어단위 검색

apropos

man page 이름과 설명 검색

자주 사용되는 옵션

  • -s, –sections=LIST, –section=LIST # ㅌ탐색할 섹션을 으로 구분하여 입력
  • 1 : 일반적 툴
  • 2 : 시스템 콜
  • 3 : 라이브러리 함수
  • 7 : Overview 등의 개념

e.g.

  • apropos print
  • apropos pthread
  • apropos pthread -s 7
  • apropos ‘^sem_’
  • apropos ‘.*’
  • apropos ‘.*’ -s 5:6:7

locate

파일 위치를 보여줌

단, updateddb가 저장해놓은 DB파일 내에서 검색하므로 누락 파일 존재 가능

updateddb : os 레벨에서 정기적으로 업데이트 함

어떤 파일이든 찾아서 보임

locate [OPTION]… PATTERN

자주 사용되는 옵션

  • -i, –ignore-case
  • -l, -limit, -n LIMIT
  • –regex

e.g.

  • locate main.c -n 10 #

which

실행 파일의 위치를 알려줌 > 일반적인 파일은 불가능

e.g.

  • which ls
  • which chmod
  • which ls strace chmod
  • which ifconfig