OS/Server > Unix/Linux공통

최근에 변경된 파일/폴더를 검색 (Linux) - 사이즈,날짜

#크기#순서#

구문

find [option] [path... ] [expression] 

1) 옵션
옵션 설명
-depth 디렉토리 본체전에 디렉토리 내용을 먼저 평가한다.
-follow 심볼릭 링크(대상)도 검색한다.
-xdev 다른 파일시스템에 있는 디렉토리는 검색하지 않는다.
2) 판별식 (expression)
옵션 설명
-atime / -amin
-atime n
access day/min  마지막으로 파일에 접근한 시간
마지막 엑세스한 것이 n일전의 파일들을 검색
-mtime / -mmin
-mmin n, -mtime n
Modified  마지막으로 파일의 내용을 수정한 시간
데이터가 마지막 수정된것이 n분/n일 전인 파일을 검색한다.
-ctime / -cmin Change 마지막으로 파일의 속성을 수정한 시간
-empty 빈파일이나 비어있는 디렉토리름 검색한다.
-group gname 그룹명이 gname인 파일을 검색한다. (ID번호도 지정가능하다)
-name pattern 파일명이 pattern과 동일한 파일 검색 (와일드카드 사용)
-perm mode 파일의 엑세스 권한디 mode인 파일을 검색 (mode 는 8진수)
-type c 지정한 파일타입을 검색. c (d가 디렉토리, f가 파일, ㅣ이 심볼릭링크)
-user uname 소유자가 uname인 파일을 검색 (ID수치도 지정가능)
-size n [bckw] n 사이즈의 파일을 검색 (c:byte,k:Kbyte, 없으면 block=1block=512byte)

※ 숫자 매개변수의 설명 : ex) -mtime n

매개변수 설명
+n n 보다 큰거
-n n 보다 작은거
n 정확히 n 인거

ex) -mtime +10  : 10일보다 더 오래전에 변경된 파일  (먼과거 ~ 10일전 까지)
ex) -mtime -10  : 10일 이내에 변경된 파일 (10일전부터 ~  현재까지)
ex) -mtime 10  : 오늘로부터 정확히 10일전에 변경되 파일  (딱 10일전에 변경된거)

3) function
함수 설명
-exec command \\; 검색후, command를 실행, 이때 {}로 검색결과를 커맨드에 건네준다.
-ok command \\; 위와 동일, 단 사용자에게 물어본다
-print 검색결과를 표준출력 (결과를 풀패스로 표시)
-fprint file 검색결과를 파일에 쓴다. 파일이 있으면 덮어쓰기를 한다.
-ls 결과에 파일상세를 붙여 표시한다.
4) 판별식의 연산자
연산자 설명
( expr ) 괄호안을 우선적으로 판별
-not expr expr이 아닌것을 검색
expr1 -and expr2 그리고 판별
expr1 -or expr2 또는 판별


 

엑세스 기준
검색표현 설명
find -atime -7 7일전 ~ 현재까지 엑세스한 것을 검색
find -atime 7 딱 7일전에 엑세스한 것을 검색
find -atime +7 과거에서 ~ 7일전까지 :  엑세스한지 7일이상 경과한 모든 파일을 검색
10일보다 더 오래전에 변경된 파일검색

# find /data/web -type f -mtime +10 -ls

30일 이내 변경된 파일검색 (과거 30일~현재)

# find /data/web -type f -mtime -30 -ls

1시간(60분) 이내 변경된 디렉토리 검색

# find /data/web -type d -mmin -60 -ls

10분 이내 변경된 파일 검색
# find / -type f -mmin -10 -ls

 

지정한 날짜 이후 변경된 파일 찾기

# find /data/web -newermt "2020-10-10" -ls

※ 24시간 내 변경되 파일 검색
# fine /data/web -newermt "1 day ago" -ls
# find /data/web -newermt "-24 hours" -ls
# find /data/web -newermt "yesterday" -ls

확장자가 "java"인 파일중 30일이내 접근이력 파일 검색

# find /data/web -type f -iname "*.java" -mtime -30 -ls