리눅스 10 분 이내 수정된 파일만 검색하는 방법
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 즉 일자는 등록일, 수정일 다 되었다.