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'
mt
m
t
이렇게 하면 6개월 전 같은 날짜, 같은 시간 이전에 수정된 파일이 제공되지만 GNU find
(FreeBSD와 반대)의 경우 DST 조정(DST가 적용되는 시간대에서)을 수행하지 않습니다. UTC 시간대와 동일한 정보입니다. 지금이 2016-07-01 13:00(일광 절약 시간)이면 FreeBSD는 find
2016-01-01 13:00(겨울 시간) 이전에 마지막으로 수정된 파일을 보고하고, GNU는 find
2016-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
테스트와 동일합니다.mtime
ctime