특정 날짜에 수정된 모든 파일 가져오기

특정 날짜에 수정된 모든 파일 가져오기

php특정 날짜에 수정된 디렉토리의 모든 파일을 찾을 수 있습니까?

나는 그것을 사용하고 있다

find /var/www/html/dir/ -mtime -28 | grep '\.php' 

지난 28일 동안 수정된 파일을 가져오지만 다음 날짜에 수정된 파일만 필요합니다.2011-02-08

답변1

최신 버전 find(예: GNU 4.4.0)에서는 이 옵션을 사용할 수 있습니다 -newermt. 예를 들어 2011-02-08에 수정된 모든 파일을 찾습니다.

$ find /var/www/html/dir/ -type f -name "*.php" -newermt 2011-02-08 ! -newermt 2011-02-09

또한 find가 options 에서 이를 수행할 수 있으므로 PHP 파일을 찾기 위해 grep을 파이프할 필요가 없습니다 -name.

더 많은 제안 사항을 보려면 이 SO 답변을 확인하세요.찾기를 사용하여 특정 날짜에 생성된 파일을 검색하려면 어떻게 해야 합니까?

답변2

짜증나게도 표준에는 직접적인 방법이 없습니다 find. find최신 버전의 GNU 시스템(예: 내장되지 않은 Linux, Cygwin) 및 일부 *BSD에는-newermt파일 날짜와 철자 날짜 비교 와 같은 옵션.

기준을 사용하면 파일 날짜를 현재 날짜( ) 또는 고정 파일과 비교하는 find것뿐입니다 . 현재 날짜는 일반적으로 이 경우 유용하지 않습니다( 대부분의 응용 프로그램에는 달력 날짜가 필요한 반면 -mtime명령이 실행된 시간부터 카운트다운됩니다 ). find이렇게 하면 범위를 정의하기 위해 임시 파일을 만들어야 합니다.

touch -t 201103070000 start.tmp
touch -t 201103080000 stop.tmp
find . -newer start.tmp \! -newer stop.tmp -print
rm start.tmp stop.tmp

답변3

당신 과 함께 zsh당신은 사용할 수 있습니다기능age특정 날짜에 수정된 파일 이름만 인쇄합니다.

자동으로 연령 로드
인쇄 -rl -- *.php(.e:age2011/02/08:)

또는 재귀적으로 검색하려는 경우:

자동으로 연령 로드
인쇄 -rl -- **/*.php(.e:age2011/02/08:)

답변4

대부분의 경우 기본 명령을 사용합니다.

ls -l | grep 2017 | grep Apr\ 11
ls -l | grep 2017 | grep Apr\ 1\

참고: 두 번째 명령 끝에 공백을 추가하십시오. 명령줄에서 대화형으로 검색할 때 파일과 디렉터리를 혼합하는 데에는 문제가 없습니다.

관련 정보