본문 바로가기
IT/LINUX

리눅스 find 명령어 사용법

by SidePower 2021. 1. 31.

find 명령어 이것만 제대로 사용할수 있다면
리눅스를 다루기에 날개를 다는거 같아요.

find 는 파일과 디렉터리를 찾는 명령어이며
표현식들의 막강한 기능으로 타의 추종을 불허할 정도입니다.ㅋ

 

 

기본 사용법


find 옵션 [Path...] [expression]

옵션


-H 싱볼릭 링크를 따라가지 않지만 예외로 파라미터(arguments) 가 있으면 따라감.
-L 싱볼릭 링크에 연결된 파일도 확인
-P 싱볼릭 링크를 따라가지 않는다.
-D 디버깅 정보 츨력
-O 최적화 활성화 0~3단계 지정.
옵션은 거의 사용하지 않을거에요.
이런게 있구나 정도만 아시면 될거네요.

expression 표현식


표현식 설명
-name 검색을 문자열 지정
지정하지 않으면 모든 파일이 대상입니다.
-size 파일 크기 지정
-type 파일 타입 지정
-atime 파일 접근 시간 access 지정
-ctime 파일 속성 시간 지정
-mtime 파일 변경 시간 지정
-amin 파일 접근 분 단위 지정
-cmin 파일 속성 분 단위 지정
-mmin 파일 변경 분 단위 지정
-exec 검색 결과로 지정된 명령어 실행
-print 검색 결과 출력
-perm 파일 권한 지정


더 많이 있는데요. 주로 사용하는 표현식입니다.
이정도면 충분하실거에여.
전체를 보시고 싶으시면 리눅스에서 man find 명령어로 확인할수 있습니다.

표현식 이름에서 유추하실수 있을거에요.
파일이나 디렉터리를 찾을때 상당히 디테일하고 유도리있게 찾을수 있습니다.

 

* 기본 사용법 

find [Path...] [표현식]

 

 현재 디렉터리에 txt 확장자 파일 찾기

     현재 디렉터리는 . 으로 표시합니다.

 

find . -name "*.txt"

./str2.txt
./str.txt
./sub_fold/sub_str.txt

 

특정 디렉터리에 txt 확장자  파일 찾기

find /home -name "*.txt"

/home/sidepower/test/str2.txt
/home/sidepower/test/str.txt
/home/sidepower/test/sub_fold/sub_str.txt

 

 특정 디렉터리 전체 파일리스트 보기

find /src

src

src/str.txt

src/str2.txt

 

특정 파일 제외하고 찾기 → !

ls
src   str.txt  str2.txt   strUTF

find ! -name "*.txt"

src

strUTF

 

 -size

   파일 크기(size)로 찾기

 

크기 유형
b : 512 byte 
c : byte
k : kilobyte (=1024byte)
w : 2 byte (word)
M : Megabyte
G : Gigabyte

유형을 선택해서 숫자 뒤에 기입하시면 됩니다.

byte 크기로 찾기 : c 

① 10byte 파일 찾기 
find . -name "*.txt" -size 10c
./src/str.txt
./str2.txt

② 10byte 보다 큰파일 찾기 : 숫자앞에 +
find . -name "*.txt" -size +10c
./src/strUTF
./new.txt

③ 10byte 보다 작은파일 찾기 : 숫자앞에 -
find . -name "*.txt" -size -10c
./src/strSmall
./low.txt

 

 -type

   파일 타입을 지정해서 찾기

 

타입 유형
d : 디렉터리
f : 일반 파일
l : 싱볼릭 링크파일
b : 블록 장치
s : 소켓 파일
c : 문자 장치 파일

find -type d
.
./sub_fold
./src

find -type f
./src/strUTF
./src/strSmall
./src/str.txt
./str2.txt
./new.txt
./low.txt

날짜와 시간을 이용한 찾기

리눅스 mtime,ctime,mtime,mmin,cmin,amin 개념 정리 바로가기

 

atime , ctime , mtime중에 주로 mtime을 이용합니다.
amin , cmin , mmin 중에 주로 mmin을 이용합니다.


① /src 디렉터리에서 1일 이내에 변경된 txt파일 찾기
find /src -name "*.txt" -mtime -1

② 현재 디렉터리에 30분전에 변경된 모든 파일 찾기
find . -mmin 30

현재 디렉터리에 30일 이후의 옛날 txt 파일 모두 삭제
find . -mtime +30 -name "*.txt" -exec rm -f {} \;

④ /src 디렉토리에 2일 이내에 10MB보다 큰 txt파일 모두 압축하기
find /src -name "*.txt" -mtime -2 -size +10M -exec gzip {} \;

 

 -empty

   빈파일 (0 byte)을 찾습니다.

 

ls -l

-rw-rw-r-- 1 sidepower sidepower 64 1월 26 01:48  str1.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 02:48  str2.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 03:48  str3.txt
-rw-rw-r-- 1 sidepower sidepower 53 1월 26 04:48  str4.txt
-rw-rw-r-- 1 sidepower sidepower 25 1월 26 05:48  str5.txt

find . -empty
./str2.txt
./str3.txt

 

 -newer

    선택된 파일 보다 더 최근에 생성된 파일을 찾습니다.

 

ls -l

-rw-rw-r-- 1 sidepower sidepower 64 1월 26 01:48  str1.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 02:48  str2.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 03:48  str3.txt
-rw-rw-r-- 1 sidepower sidepower 53 1월 26 04:48  str4.txt
-rw-rw-r-- 1 sidepower sidepower 25 1월 26 05:48  str5.txt

find . -newer str3.txt
./str4.txt
./str5.txt

 

 -exec

    앞에서 수행된 결과를 가지고 추가 작업을 실행할수 있습니다.

    find 명령어 -exec 명령어 {} \; 

    {} → 이부분에 앞에서 find 명령어 실행 결과가 들어가게 됩니다.

ls -l

-rw-rw-r-- 1 sidepower sidepower 64 1월 26 01:48  str1.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 02:48  str2.txt
-rw-rw-r-- 1 sidepower sidepower  0 1월 26 03:48  str3.txt
-rw-rw-r-- 1 sidepower sidepower 53 1월 26 04:48  str4.txt
-rw-rw-r-- 1 sidepower sidepower 25 1월 26 05:48  str5.txt

find . -empty
./str2.txt
./str3.txt

find . -empty -exec rm -f {} \;

ls -l
-rw-rw-r-- 1 sidepower sidepower 64 1월 26 01:48  str1.txt
-rw-rw-r-- 1 sidepower sidepower 53 1월 26 04:48  str4.txt
-rw-rw-r-- 1 sidepower sidepower 25 1월 26 05:48  str5.txt

 

-perm

   파일이나 디렉터리에 부여된 권한으로 찾습니다.

   -perm 권한

   권한 : 지정된 권한과 일치하는거 찾기

  -권한 : 지정된 권한을 포함하고 추가 권한이 더 있는것도 함께 찾기

  /권한 : 지정된 권한이 하나라도 포함된 것 모두 찾기

 

리눅스 권한 개념 바로가기

 

ls -l

-rw-rw-r-- 1 sidepower sidepower 64 1월 26 01:48  str1.txt
-rwxrwxrwx 1 sidepower sidepower  0 1월 26 02:48  str2.txt
-rw-rw---- 1 sidepower sidepower  0 1월 26 03:48  str3.txt
-rw-rw---- 1 sidepower sidepower 53 1월 26 04:48  str4.txt
-rw-rw-r-- 1 sidepower sidepower 25 1월 26 05:48  str5.txt

find . -perm 664

./str1.txt
./str5.txt

find . -perm -664
./str1.txt
./str2.txt
./str5.txt

find . -perm /664
./str1.txt
./str2.txt
./str3.txt
./str4.txt
./str5.txt

 

감사합니다.

반응형

댓글