Linux에서 두 폴더 날짜 사이의 파일을 찾으십니까?

Linux에서 두 폴더 날짜 사이의 파일을 찾으십니까?

콘텐츠에 내 문자열이 포함된 폴더 이름과 파일 이름을 찾아야 합니다. 나는 이 디렉토리 " /data/queue/data"에 있고 같은 디렉토리에 많은 폴더가 있고 각 폴더에는 다양한 파일이 있습니다.

다음은 " " 디렉토리에 있는 폴더이며 /data/queue/data, 각 폴더에는 다양한 파일이 포함되어 있습니다.

david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david  12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david  12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david  12K Apr 11 20:58 1428807600

이 디렉토리에서 - " " 명령을 실행하고 싶지만 /data/queue/data타임스탬프가 있는 폴더 내의 파일만 찾아야 합니다 April 13th 3 AM to April 13th 9 AM.

April 13th 3 AM to April 13th 9 AM다음은 내 명령입니다. 이 명령은 모든 폴더 내의 파일을 재귀적으로 찾습니다. 그러나 폴더 내의 파일 만 찾도록 하려면 어떻게 해야 합니까 ?

david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data

이를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

이 시도:

touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2

어떻게 작동하나요?

find시간은 직접 처리할 수 있지만 touch인간 스타일의 날짜는 더 잘 처리할 수 있습니다.

  • touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2

    그러면 시간 범위의 시작과 끝을 표시하는 두 개의 파일이 생성됩니다.

  • find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +

    file1그러면 최신이지만 최신이 아닌 파일이 검색됩니다 file2. 이러한 모든 파일에 대해 grep실행되어 해당 파일에 문자열이 포함되어 있는지 확인합니다.

관련 정보