"x"와 "y" 시간 사이에 생성된 모든 파일을 나열하는 방법은 무엇입니까? "2014년 12월 29일 18시"부터 2014년 12월 30일 18시 사이에 생성된 파일을 나열하고 싶습니다. ls 또는 stat를 사용하시겠습니까?
답변1
대부분의 시스템은 파일 생성 날짜를 추적하지 않습니다.
당신의 것이 GNU/BSD를 발견했다면, 예를 들어,OSX, -newerBt
해당 조건자를 사용하여 파일 생성을 비교할 수 있습니다("두번째irth") 시간 및 특정 시간.
find -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"
이는 하위 디렉터리를 재귀적으로 순회합니다. 현재 디렉토리의 파일만 원한다면 다음을 수행하십시오.
find -mindepth 1 -maxdepth 1 -newerBt "29-dec-2014 18:00" ! -newerBt "30-dec-2014 18:00"
시스템이 생성 시간을 추적하지 않는 경우 수정 시간을 사용할 수 있습니다. -newerBt
로 교체하세요 -newermt
.
시간별로 파일을 필터링할 수 있는 방법 도 없습니다 ls
. stat
그들이 할 수 있는 일은 파일의 타임스탬프를 나열하는 것뿐이며, 특정 시간 범위에 대한 출력을 필터링하는 것은 쉽지 않습니다. find
작업에 적합한 도구입니다.
POSIX 조회한 파일의 타임스탬프는 다른 파일의 타임스탬프와만 비교할 수 있으므로 특정 시간 간격 내에서 파일을 필터링하는 이식 가능한 방법은 경계 파일을 만드는 것입니다. 수정 시간만 필터링할 수 있으며 POSIX는 생성 시간을 정의하지 않습니다.
touch -t 201412291800 /tmp/start
touch -t 201412301800 /tmp/stop
find . -newer /tmp/start ! -newer /tmp/stop
아니면 재발을 원하지 않는 경우
find . ! -name . -prune -newer /tmp/start ! -newer /tmp/stop