특정 시간 범위 내에 변경된 파일을 나열하는 방법은 무엇입니까?

특정 시간 범위 내에 변경된 파일을 나열하는 방법은 무엇입니까?

2011년 12월 22일부터 2011년 12월 24일 사이에 변경된 모든 파일을 재귀적으로 나열하는 방법은 무엇입니까?

답변1

Gilles의 솔루션을 사용하고 읽은 후발견한 남자 (1)다시 한번 더 간단한 해결책을 찾았습니다. 가장 좋은 옵션은 -newerXY입니다. m 및 t 플래그를 사용할 수 있습니다.

m   The modification time of the file reference
t   reference is interpreted directly as a time

그래서 해결책은

find . -type f -newermt 20111222 \! -newermt 20111225

하한포함 상한포함이라 1일 추가했어요! 그리고 그것은 재귀적입니다. find v4.5.9에서는 잘 작동합니다.

답변2

일반적으로 디렉터리와 해당 하위 디렉터리에서 파일을 반복적으로 찾을 때 find.

날짜 범위를 지정하는 가장 간단한 방법 find은 범위 경계에서 파일을 만들고 조건자를 사용하는 것입니다 -newer.

touch -t 201112220000 start
touch -t 201112240000 stop
find . -newer start \! -newer stop

답변3

이미 제공된 답변 외에도 날짜를 직접 지정할 수 있습니다.

find -type f -newermt "2011-12-22" \! -newermt "2011-12-24"

또는

find -type f -newermt "2011-12-22 00:00:00" \! -newermt "2011-12-24 13:23:00"

시간도 지정하고 싶다면.

답변4

find날짜 시간은 ISO 형식일 수 있으므로 UTC 서버의 경우 현재 위치에서 시간 단위로 오프셋을 지정할 수 있습니다. 이는 또한 시간을 비교하기 때문에 하루를 추가해야 하는 문제를 해결합니다.

find -type f -newermt 20111224T0800 \! -newermt 20111225T0800

관련 정보