파일 속성으로 파일을 찾는 명령어는 find이다.

find 명령어

  • 파일 이름이나 속성을 이용하여 해당 파일을 찾는다.

사용법

$ find  경로 검색조건 동작
  • 경로 : 파일을 찾을 디렉터리의 절대 경로 또는 상대 경로
  • 검색조건 : 파일을 찾기 위한 검색 기준, and, or를 이용하여 조건 결합 가능
  • 동작 : 파일의 위치를 찾은 후 해당 수행할 동작을 지정하고 기본 동작은 찾으려는 파일의 위치를 절대 경로로 출력

경로

  • . : 현재 디렉터리
  • ~ : 홈 디렉터리
  • / : root 디렉터리
  • /etc : /etc 디렉터리

검색조건

  • -name 파일명 : 파일명으로 찾기
  • -type 타입 : 타입으로 찾기( f : 일반 파일, d : 디렉터리, l : 심볼릭 링크 파일, s : 소켓 파일, b : 블록 장치 특수파일)
  • -size n : 파일의 크기가 n블록인 파일들을 찾기(1 = 512바이트)
  • -perm nnn : 접근권한이 nnn인 파일 찾기
  • -user 사용자명 : 파일의 소유자가 사용자 명인 파일을 찾기
  • -atime +n : 접근 시간이 n일 이전인 파일 찾기
  • -atime -n : 접근 시간이 n일 이내인 파일 찾기
  • -mtime +n : 수정시간이 n일 이전인 파일 찾기
  • -mtime -n : 수정시간이 n일 이내인 파일 찾기
  • -newer : 기준시간보다 이후에 생성된 파일 찾기
  • -a : and
  • -o : or
  • ! : not

동작

  • -exec 명령 {} \; :  \;으로 끝나고 찾은 파일을 해당 명령에 맞게 실행
  • -print : 화명에 경로명을 출력(안 적어도 출력됨)
  • -ls : 긴 목록 형식으로 검색 결과를 출력
예시
$ find ~ -name test.txt
  • 홈 디렉터리에서 test.txt인 파일을 찾기
$ find ~ -type d -a -name Linux
  • 홈 디렉터리에서 파일의 타입이 디렉터리이고 그 디렉터리 이름이 Linux인것을 찾기(-a는 생략 가능)
$ find ~ -type f -o -name Linux
  • 홈 디렉터리에서 파일의 타입이 일반파일이거나 이름이 Linux인 파일 찾기
$ find ~ -name test.txt -exec rm {} \;
  • 홈디렉터리에서 파일 이름인 test.txt 파일을 찾아서 삭제
$ find . -perm 755
  • 현재 디렉터리에서 접근권한이 755인 파일 찾기

'Linux' 카테고리의 다른 글

[Linux]명령어 스케줄링  (0) 2021.12.12
[Linux]파일 정렬  (0) 2021.12.01
[Linux]파일 필터링(파일 내용 검색)  (0) 2021.11.29