프로그래밍/서버

[리눅스]특정기간 파일찾기

guitarhero 2017. 12. 14. 16:41
728x90

서버 파일을 옮기거나 서버 이관을 할 때 중간에 일정 기간의 파일을 수동으로 옮겨야 할 때가 있다. 


그래서 특정기간에 생성된 파일 목록을 추출하면 유용할 것 같아서 검색하던 중 유용한 정보가 있어서 공유해본다. 


find를 이용하는 방법인데

기본적으로 특정기간의 파일을 찾으려면 -mtime이란 옵션이 있지만

이게 은근 정확하지 않을 때가 있다 

아무래도 지금 일시를 기준으로 해서 그런것 같다.


그래서 -newer 옵션과 touch를 이용한 파일을 가지고 특정기간 동안의 생성된 파일을 검색 할 수 있다. 

1. 검색하고 싶은 기간의 시작일자와 끝나는 일자의 파일을 생성한다.(여기서 touch 명령어 사용)


touch start.txt
touch -t 201712140000 start.txt
touch end.txt
touch  -t 201712142359 end.txt


위와 같이 명령어를 입력하면 지정된 날짜와 시간에 생성된 파일이 만들어진다. 


2. 위에서 만든 파일을 이용해서  파일 검색(find 명령어 사용)


find . -newer start.txt -a ! -newer end.txt -exec cp {} /data/upload/backup/ \;


위명령어는 해당 기간의 파일을 검색해서 /data/upload/backup/ 폴더밑에 복사하라는 의미이다. 

마지막의 \;가 -exec 뒤의 명령어를 실행하라는 의미 이므로 뒤에 안 붙혀 주면 작동하지 않는다. 

이렇게 하면 해당 폴더에 있는 파일들만 검색해서 이관해 줄 수 있겠다. 


(참조: http://zeronixo.blogspot.kr/2013/07/linux-unix-tip-find.html)


728x90

'프로그래밍 > 서버' 카테고리의 다른 글

[CRON]crontab 으로 스케줄링하기  (0) 2018.03.21
[JEUS]Thread dump  (0) 2018.02.12
[리눅스]파일 전송  (0) 2017.12.14
[리눅스]폴더 압축/해제 방법  (0) 2017.12.14
[GPIN]GPIN 적용하기_2  (2) 2017.12.01