이 명령을 사용하여 마지막 날에 수정된(또는 생성된) 모든 파일을 나열합니다.
find ./ -mtime 1 -ls
그런데 방금 명령어를 실행했더니(5월 2일 19시 38분) 4월 30일부터 계속 파일이 반환되더군요.
왜 이런 일이 발생하는지 알려주거나 지난 24시간 동안 수정되거나 생성된 파일을 찾을 수 있는 더 나은 명령을 줄 수 있는 사람이 있나요?
답변1
find
며칠 전에 수정된 파일 의 경우 소수 부분을 무시하므로 -mmin
대신 사용하는 것이 좋습니다. -mtime
따라서 23시간인 1일도 1일로 간주됩니다.
에서 man find
:
-atime n
File was last accessed n*24 hours ago. 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.
귀하의 경우 다음은 지난 24시간(예: 1440분) 동안 수정된 파일을 보여줍니다.
find . -mmin -1440 -ls
답변2
-mtime N
파일의 연령을 나타냅니다.ㅏ하루 안에 만족하세요.질소≤ㅏ<질소+1. 즉, 가장 최근에 수정된 파일을 선택합니다.-mtime N
질소그리고질소+1일 전. 예를 들어 -mtime 1
1~2일 전에 수정된 파일을 선택합니다. 마지막 날(예: 지난 24시간 이내)에 수정된 파일을 선택하려면 를 사용합니다 -mtime 0
.
-mtime -N
파일의 연령을 나타냅니다.ㅏ풀다ㅏ<질소즉, 수정된 파일이 다음보다 적습니다.질소며칠 전. 덜 직관적이며 파일의 나이를 의미합니다.-mtime +N
ㅏ풀다질소+1≤ㅏ, 즉 최소한 수정된 파일질소+1일 전.
이러한 규칙을 기억하기 어렵다면 대신 참조 문서를 사용하세요.
touch -d '1 day ago' cutoff
find . -newer cutoff
("1일 전" 구문에는 GNU가 필요합니다 touch
.)