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