프로그래밍 노트/Linux

리눅스 파일 검색(find)

깡냉쓰 2020. 2. 10. 21:22
728x90
반응형
  • locate - 파일명을 파일 위치 찾기
    • locate bin/zip
  • find - 디렉토리 트리 내에서 파일 검색하기
  • xargs - 표준 입력으로부터 인자 목록을 만들고 실행하기
  • touch - 파일 시간을 변경하기
  • stat - 파일이나 파일시스템 상태 표시하기

find - 다양한 방법으로 파일 찾기

locate는 오로지 파일명으로 파일을 찾지만, find 프로그램은 다양한 속성에 근거하여 주어진 디렉토리를 검색하여 파일을 찾는다.

# find [검색할 디렉토리명]

파일 형식 찾기

  • b : 블록 특수 파일
  • c : 문자 특수 파일
  • d : 디렉토리
  • f : 파일
  • l : 심볼릭 링크 파일
# find ~ -type f -name "*.JPG" -size +1M | wc -l
# *.JPG와 일치하며, 1메가바이트보다 큰 파일을 검색

연산자

find는 논리 연산자를 사용하여 파일들을 찾을 수 있다.

# find ~ \( -type -f -not -perm 0600 \) -o \( -type d -not -perm 0700 \)
  • -and (-a)
  • -or (-o)
  • -not (-!)

액션

find 명령어로 찾은 파일, 디렉토리들에게 어떤 액션을 취할 것 인가?

  • -delete : 현재 검색된 파일을 삭제한다.
  • -ls : 검색된 파일을 표준 출력으로 전송
  • -print : 검색 결과의 전체 경로명을 표준 출력으로 출력(default)
  • -quit : 검색 조건에 해당하는 결과가 하나라도 나오면 검색 종료
# find ~ -type f -name "*.BAK" -print

사용자 정의 액션
미리 정의된 액션뿐만 아니라 임의의 명령어도 실행시킬 수 있는데 대표적으로 -exec 액션을 활용할 수 있다.

# -exec command {};
# find ~ -type -f -name "foo*" -exec ls -l '{}' ';'
728x90
반응형