6개월이 지난 비관리 파일 찾기

6개월이 지난 비관리 파일 찾기

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

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

어떻게 하면 6개월 이상 지속할 수 있나요?

답변1

-mtime 183기간이 183에 해당하는 다음 24시간 기간으로 반올림되어 기간이 182*24*3600초(제외)에서 183*24*3600초(포함) 사이인 파일에 적용됩니다(여기서 초는 Unix 초임). 는 ISO에서 정의한 고정 기간(초)이 아닌 가변 기간(지구일의 86400번째 부분)을 가지 므로 모든 날은 86400초이며 윤초를 고려할 필요가 없습니다.

를 사용하면 -mtime +183다음 24시간 기간으로 반올림된 183보다 엄격하게 나이가 큰 파일을 얻게 되므로 나이는 엄격하게 183*24*3600초보다 큽니다.

24시간이 반드시 24시간과 일치하는 것은 아닙니다.하늘일부 지역에서는 일광 절약 시간제로 인해.

일부 구현(FreeBSD, GNU)의 경우 .을 사용 하여 수정 시간을 인수로 제공된 시간과 비교할 find수도 있습니다 .! -newermt '6 months ago'mtmt

이렇게 하면 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

+날짜 값 앞에 1을 추가합니다. 매뉴얼 페이지에서:

   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

관련 정보