CAFE

Q/A (SUN,solaris)

Re:[ls] 특정 일에 수정/생성된 파일들만 찾아오는 방법없을까요?

작성자유닉스피아™|작성시간07.07.06|조회수3,867 목록 댓글 0
find 를 이용하여 특정 날짜로 부터 특정날짜 까지의 생성된 일만 검색 하려 합니다.

예를들어서

조건 : 7월3일 ~ 7월 5일 , 해당 경로의 절대PATH

7월 3일부터 7월 4일 까지의 파일을 검색 결과 그 파일의 절대 경로까지 나타나게 하는 방법입니다.


1. 가장 쉬운 방법은 touch라는 명령어와 find를 사용하시면 됩니다.

#touch -t 200707030000 start_date.txt --> 2007년 7월 3일 0시 날짜를 갖는 파일 생성
#touch -t 200707050000 end_date.txt --> 2007년 7월 5일 0시 날짜를 갖는 파일 생성
#find /test -newer start_date.txt -a ! -newer end_date.txt -ls > find_date.txt

===> /test디렉토리 하위에서 start_date.txt 생성날짜 이후부터 end_date.txt 생성날짜 이전까지를 검색하여 find_date.txt에 저장하는것을 의미합니다.


2. 위의 방법이 좀더 정확한 시간을 검색하는 방법이지만
며칠전부터 며칠전까지 검색하는 경우는 다음도 방법이 좋을듯 하네요.

그리고 -type 옵션을 사용하여 디렉토리와 파일을 나누어서 결과를 표시하면
더 좋겠죠.

find로 찾은 결과가 /tmp/log(디렉토리) /tmp/aaa(파일)
-exec으로 ls를 실행하면 ls -l /tmp/log;ls -l /tmp/aaa 이런 식으로 실행되어
찾은 결과가 디렉토리인 경우 절대경로없이 그 아래의 모든 파일이 다 나오게 됩니다.
따라서 find의 -ls 옵션을 쓰시거나 ls의 -d옵션을 쓰시면 이런 경우를 방지할 수 있습니다.


예를 들어
디렉토리 : /test
대상 : 2일전부터 4일전까지 수정한 파일

2.1 파일만 찾는경우
find /test -mtime -4 -mtime +2 -type f -ls
find /test -mtime -4 -mtime +2 -type f -exec ls -l {} \;

2.2 디렉토리까지 같이 찾는 경우
find /test -mtime -4 -mtime +2 -ls
find /test -mtime -4 -mtime +2 -exec ls -ld {} \;

이렇게 하시면 되겠네요.

찾는 날짜가 계산이 어렵거나 시간대까지 지정해야 한다면
위의 1번처럼 mtime 대신 -newer 옵션을 사용하시는 것이 맞습니다.
다음검색
현재 게시글 추가 기능 열기
  • 북마크
  • 공유하기
  • 신고하기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼