6개월이 넘은 관리되지 않는 파일 찾기

6개월이 넘은 관리되지 않는 파일 찾기

6개월 이상 손대지 않은 파일을 모두 찾으려고 합니다. 이 명령을 실행했지만 6개월 동안 편집된 모든 파일만 표시됩니다.

find . -type f -mtime 183 -exec ls -latr {} \;

이것을 6개월 이상으로 만들려면 어떻게 해야 합니까?

답변1

-mtime 183다음 24시간 기간으로 반올림된 기간이 183인 파일에 대한 것입니다. 따라서 기간은 182*24*3600초(제외)에서 183*24*3600초(포함) 사이로 구성됩니다(여기서 초는 Unix 초, 즉, 초의 고정 기간 ISO 정의가 아닌 지구의 날의 86400 번째 부분 인 가변 기간을 갖습니다 . 따라서 모든 날은 86400초이므로 윤초를 고려할 필요가 없습니다.

를 사용하면 -mtime +183다음 24시간 기간으로 반올림된 기간이 183보다 엄격하게 큰 파일을 가져오므로 해당 기간은 엄격히 183*24*3600초보다 큽니다.

24시간이 반드시 24시간과 동일하지는 않습니다.일부 지역의 일광 절약 시간제 전환으로 인해.

일부 find구현(FreeBSD, GNU) 에서는 ! -newermt '6 months ago'. 수정 시간을 인수로 주어진 시간과 mt비교합니다 .mt

그러면 6개월 전 같은 날짜, 같은 시간 이전에 수정된 파일이 제공되지만 GNU의 경우 find(FreeBSD와 반대로) DST 조정(DST가 적용되는 시간대에서)을 수행하지 않습니다. 마치 UTC 시간대에 있는 것처럼 정보를 제공합니다. 지금이 2016-07-01 13:00(여름 시간)이면 FreeBSD는 find2016-01-01 13:00(겨울 시간) 이전에 마지막으로 수정된 파일을 보고하는 반면, GNU는 find2016-01-01 12 이전에 마지막으로 수정된 파일을 보고합니다. :00(겨울철). 매월 29일, 30일 또는 31일에 호출되고 6개월 전 달에는 해당 날짜가 없는 경우에도 변동이 있을 수 있습니다.

답변2

+일 값 앞에 를 추가합니다 . 매뉴얼 페이지에서:

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

그리고

... When  find  figures  out
how  many  24-hour  periods  ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.

이는 테스트를 의미하지만 , 및 테스트 atime에서도 동일합니다 .mtimectime

관련 정보