본문으로 바로가기
728x90
반응형
Find 명령어

GUI 기반인 윈도즈와는 달리 리눅스에서는 Terminal을 사용하기 때문에 파일 및 디렉터리를 찾기가 쉽지 않습니다. 이럴 때 find 명령어를 잘 사용한다면 사용 편의성이 좋아집니다. find 명령어에는 여러 옵션들이 존재하는데 천천히 알아보도록 하겠습니다.

 

리눅스 Terminal에 man find를 입력하면 아래와 같은 Manual이 출력된다.

CMD 창에서 man find 입력한 경우

위의 Manual을 요약해보면...

find [-P] [-L] [-H] [-D] [starting-point] [expression]

  P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
  L : 심볼릭 링크에 연결된 파일 정보 사용.
  H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
  D : 디버그 메시지 출력.
  
  starting-point : 검색을 시작할 경로
  
  expression
    -name     : 지정된 이름 파일 검색
    -empty    : 빈 파일이나 디렉토리 검색
    -delete   : find 명령어로 검색된 파일을 삭제. 단독으로 사용 불가.
    -exec     : 검샌 된 파일에 추가 명령 실행.
    -path     : 특정 경로에서 파일 검색
    -print    : 검색 결과를 출력. newline으로 구분. (기본 값)
    -print0   : 검색 결과를 출력. null로 구분.
    -size     : 파일 크기로 검색 가능함.
    -type     : 파일 타입으로 검색 가능함.
    -mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
    -maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
    -atime    : 파일 접근(access) 시각을 기준으로 파일 검색.
    -ctime    : 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색.
    -mtime    : 파일의 데이터 수정(modify) 시각을 기준으로 파일 검색.

 

find [PATH]

CMD 창에 find 만 입력한 경우

find 명령어만 사용할 경우 현재 디렉토리 내부터 하위 디렉터리까지 파일 및 디렉터리를 검색해준다.

CMD 창에 find test2로 test2 디렉토리 안의 파일 검색한 경우

특정 경로를 입력해주면 특정 경로 안의 내용만 확인할 수 도 있다.

 

find -name [찾는 문자열]

CMD 창에 find -name [파일이름] 입력한 경우

특정 문자열로 된 파일을 찾고자 할때 사용

 

find -empty

CMD 창에 find -empty를 입력, 빈 파일을 찾음.

 

find -name [찾을 파일명] -delete

CMD 창에 find -name test2 -delete 한 경우 test2로 된 문자열을 찾아 삭제

 

find -name [찾을 파일명] -exec [실행할 명령어] {} \;

test2 파일을 찾아 파일 정보를 출력하는 명령어

{} 인자는 find -name test2 입력 시 출력되는 결과물이다.

 

즉, find -name test2의 결과물에 ls -la 한 결과이다.

ls -la ./test2

ls -la ./test2/test2

 

*주의할 점은 파일 이름이 인자로 들어가지 않는 명령어에 대해서는 {} 인자를 빼야 된다. 

-exec 옵션을 통해 pwd를 사용시 {} 인자 여부에 따라 오류가 발생한다.

 

find -path [경로]

CMD 창에서 -path 명령어를 입력해 본 경우

find [PATH] 하면 해당 경로부터 모든 파일및 디렉토리를 출력해지만

find -path "경로"를 입력하면 해당 경로만 출력해주는데 위의 예시처럼 파일 경로에 test 문자열을 검색하고 싶으면 -path "*test*" 옵션을 사용하면 경로 안에 특정 문자열을 찾는데 확인할 수 있어 보입니다.

 

find -print0

find -print : 검색한 내용을 줄 바꿈 없이 출력

 

find -size [prefix : + / -][크기][suffix : b,c,w,k,M,G]

크기는 b옵션이 기본으로 적용되기 때문에 512바이트 블록으로 표현된다. suffix를 추가하여 다른 형태로 표현할 수 있다. 또한 크기의 prefix로 초과 미만을 설정할 수 있다.

Suffix
b 512-byte block size
c bytes
w two-byte words
k kilobytes (1024 bytes)
M Megabytes (1048576 bytes)
G Gigabytes (1073741824 bytes)
Prefix
+ 초과
- 미만

 

size 8808bytes인 insertion 파일을 찾는 경우
size 8808 bytes 보다 작은 사이즈를 찾는 경우
size 4000 bytes ~ 8000 bytes 사이의 크기를 찾는 경우

find -type [옵션]

특정 형식을 찾고자 할 때 typeㄹ을 사용한다.

옵션
b block special
c character special
d directory
p named pipe (FIFO)
f reqular file
l symbolic link
s socket
D door (Solaris)

 

d 옵션을 이용하여 디렉토리만 검색
f 옵션을 이용하여 일반 파일만 검색

반응형