리눅스(Linux)

리눅스 10 분 이내 수정된 파일만 검색하는 방법

xemaker 2021. 8. 18. 17:08


find /aa -type f -mmin -10 -ls

/aa 디렉토리 밑 전부에서 10분내 수정된 파일 전부 출력

그러나 로그 파일등은 제외하고 싶었다.

구글링 해보니 grep -v 를 쓰면 된다고 했다.

그래서

find /aa -type f -mmin -10 -ls | grep -v log

를 하니 log 확장자가 제외 되고 출력되었는데.. 좀 이상했다.

log 확장자가 아니고 경로에 log가 있는것도 제외 되었다.

grep -v 옵션 : 문자열이 제외된, 즉 문자열이 포함되어 있지 않은 라인을 출력

그래서 확장자도 포함되지만 경로에 log가 있으면 이것도 제외된다.

흠.. 좀 위험하다.

그런데 왜 구글링 하면 다들 확장자 제외라고 되어 있는지..

확장자 제외가 아니다. 문자열 제외이다.

희한한게 일부라도 포함되어 있으면 안나왔다.

흠.. 정말 이상하다..

즉, logs 하면 logs 가 있는 문자열이 안나오는게 아니라 log 만 있는 문자열도 안나온다.

그래서 갑자기 떠오른 생각이 정규식의 끝 문자를 의미하는 $를 써보기로 했다.

find /aa -type f -mmin -10 -ls | grep -v log$

이렇게 썼더니 확장자가 log 인것만 빼고 나왔다. 중간에 log 디렉토리를 정상 출력되었다.

그리고 .out 파일도 빼고 싶었다.

그래서

find /aa -type f -mmin -10 -ls | grep -v log$ | grep -v out$

하니 out 확장자 파일도 빼고 출력되었다. 성공~

그런데 생성일로 할려니 안되었다.

그래서

find /aa -type f -mtime -1 -ls | grep -v log$ | grep -v out$

-mtime -1 즉 하루전 수정 및 생성일로 했더니 검색되었다.

분은 생성일 수정일이 안되는데 mtime 즉 일자는 등록일, 수정일 다 되었다.