Cygwin이 설치된 Windows 7 상자가 있습니다. 단일 루트 폴더 내에 파일이 포함된 여러 폴더가 있습니다. 특정 날짜 시간 범위 내의 타임스탬프가 있는 파일 목록을 찾고 싶습니다.
답변1
find
옵션 과 함께 명령을 사용할 수 있습니다 -newerXY
.
에서man find
:
-최신XY참조
현재 파일의 타임스탬프를 다음과 비교합니다.참조. 그만큼참조인수는 일반적으로 파일 이름(그리고 해당 타임스탬프 중 하나가 비교에 사용됨)이지만 절대 시간을 설명하는 문자열일 수도 있습니다.엑스그리고와이다른 문자에 대한 자리 표시자이며 이 문자는 어떤 시간에 어떻게 속하는지 선택합니다.참조비교를 위해 사용됩니다.
가능한 값엑스그리고와이다음과 같다:
- a - 현재 파일의 마지막 액세스 시간 또는참조
- B - 현재 파일의 생성 시간 또는참조
- c - 현재 파일의 마지막 inode 상태 변경 시간 또는참조
- m - 현재 파일의 마지막 수정 시간 또는참조
- t -참조타임스탬프를 나타내는 문자열입니다(다음에는 유효하지 않음).엑스)
엑스현재 파일을 참조하고와이~로참조이므로 첫 번째 문자(현재 파일의 수정 날짜)에는 'm'을 사용하고 두 번째 문자(문자열로 전달된 타임스탬프)에는 't'를 사용하는 것이 좋습니다. 예시 스크립트:
find . -type f -newermt "2012-05-01" ! -newermt "2012-05-15"
이는 2012년 5월 1일에서 15일 사이에 수정된 모든 파일을 찾습니다. !
(논리적 NOT
) 연산자는 뒤에 오는 인수의 의미를 바꿉니다. if -newerXY
는 "X가 Y보다 최신입니다"를 의미하면 ! -newerXY
"X는 Y보다 오래되었습니다"를 의미합니다.
Windows를 사용하고 있으므로 대체 옵션은 Powershell을 사용하는 것입니다. 그만큼Get-ChildItem
cmdlet은 지정된 폴더의 모든 파일을 반환하고(원하는 경우 반복적으로)Where-Object
cmdlet을 사용하면 다른 명령의 출력을 필터링할 수 있습니다. 예제 스크립트(검색하려는 디렉터리가 현재 디렉터리라고 가정):
Get-ChildItem -Recurse | Where-Object { $_.LastWriteTime -ge "2012-05-01" -and $_.LastWriteTime -le "2012-05-15" -and !$_.PSIsContainer }
2012년 5월 1일부터 15일 사이에 수정된 모든 파일을 반환합니다. CreationTime
대신 대신을 사용하여 LastWriteTime
파일 생성 시간을 확인할 수 있습니다. 필터 !$_.PSIsContainer
는 파일만 반환합니다( PSIsContainer
폴더의 경우 true이고 느낌표는 다시 논리 NOT
연산자입니다).
답변2
당신이 사용할 수있는원거리 관리자, Find File
필터 포함:
필터 버튼을 누르고 Insert
새 필터를 삽입하려면 누릅니다.
어떻게든 필터 이름을 지정하고, 파일 마스크를 입력하고, 확인하고 Date/Time
, 값을 선택하고 change
, 선택을 취소하고 Relative
날짜/시간 범위를 입력하세요.
확인을 누르고 에서 Filters menu
키를 눌러 space
필터를 선택합니다( +
필터 옆에 표시되어야 함).
답변3
GUI 파일 탐색기를 사용하여 해당 파일을 찾는 것도 가능합니다. 몇 가지 예:
datemodified:2015-02-18 08:00..2015-02-18 13:00
datemodified:>2015-02-18 08:00
datemodified:<2015-02-18 08:00
그리고 추가 내용은 다음과 같습니다. Windows 검색에 대한 고급 팁, 프로그래밍 방식으로 고급 쿼리 구문 사용