특정 날짜(예: 월요일)에 마지막으로 수정된 모든 파일을 찾으시겠습니까?

특정 날짜(예: 월요일)에 마지막으로 수정된 모든 파일을 찾으시겠습니까?

find그래서 나는 그것을 사용하여 월요일에 마지막으로 수정된 특정 디렉토리의 모든 .html 파일 목록을 반환하고 싶습니다 . 어떻게 해야 하나요?

답변1

only 또는 이와 유사한 것을 사용하여 이를 직접 find수행하는 좋은 방법은 확실하지 않지만 다음 find을 사용할 수 있습니다 grep.

find -printf '%Tw:%h/%f\0' | grep -z '^1:'

이기 때문에 find물론 다른 플래그를 결합할 수도 있습니다.

find -name '*.html' -type f -printf '%Tw:%h/%f\0' | grep -z '^1:'

.html로 끝나는 파일 만 가져옵니다 .

설명하다

이것은 내 테스트 디렉토리입니다.

$ ls -la
total 68
drwxr-xr-x  2 anthony anthony  4096 Mar 24 17:53 .
drwxrwxrwt 98 root    root    61440 Mar 24 17:55 ..
-rw-r--r--  1 anthony anthony     0 Mar 24 17:53 monday
-rw-r--r--  1 anthony anthony     0 Mar 23 11:12 sunday

find인수는 -printf형식 문자열을 사용합니다. 여기서 %T는 마지막 수정 시간을 나타냅니다. 다음은 w0(일요일)부터 6(토요일)까지의 요일을 나타냅니다. a(약어: Mon) 또는 (전체: Monday)를 사용하여 이름을 얻을 수 있지만 A이는 로캘별로 다릅니다. :리터럴을 제공합니다 :. %h/%f는 경로와 파일 이름입니다. \0null은 항목을 구분합니다(이와 같습니다 -print0).

이것은 다음과 같은 내용을 인쇄합니다 1:./.<NULL>0:./sunday<NULL>1:./monday<NULL>. 가독성을 높이기 위해 NULL을 개행 문자로 바꾸면 다음과 같습니다 tr '\0' '\n'.

1:./.
0:./sunday
1:./monday

그런 다음 grep -z '^1:'1:(월요일)로 시작하는 항목을 찾으세요.

답변2

사용자 ls정의 형식으로 날짜를 출력 할 수 있습니다.

ls --time-style=+%A *.html | grep " Monday "

"월요일"이 파일 이름에 없다고 가정합니다.

답변3

귀하의 질문이 의심스럽기는 하지만 대답은 다음과 같습니다.

find ./ -type f -name '*.html' -printf "%Ta %p\n" | grep '^Mon' | sed 's:^Mon ::'

.html서버에 설정된 현재 시간대에 따라 인류 역사에서 월요일에 마지막으로 수정된 것으로 끝나는 모든 파일을 찾습니다.

답변4

find다음과 같이 with 를 사용하면 stat수정 타임스탬프가 월요일인 모든 파일을 찾을 수 있습니다.

find . -type f -exec stat -t %a  {} \; | awk 'match($10, /"Mon"/) {print $16}'

find명령은 모든 파일을 찾아 awk필터에 전달하기 전에 개수를 계산합니다. awk필드 번호 10(즉, 파일 수정 시간)과 "Mon"월요일에 수정된 파일을 추출하는 문자열을 일치시킵니다. 이 print $16명령문은 파일 이름을 인쇄합니다. 삭제 $16하여 모든 필드를 인쇄하거나 임의의 숫자를 사용하여 선택한 필드를 인쇄할 수 있습니다.

1부의 출력 예(OS X):

$ cd /usr ; find . -type file -exec stat -t %a  {} \;

16777218 20556154 -rwxr-xr-x 1 루트 차크라 0 19600 "월요일" "목요일" "목요일" "토요일" 4096 16 0x20 ./bin/du

16777218 20547205 -rwxr-xr-x 1 루트 차크라 0 14256 "수요일" "목요일" "목요일" "수요일" 4096 16 0x20 ./bin/dwarfdump

16777218 20586248 -rwxr-xr-x 2 루트 차크라 0 925 "금요일" "목요일" "목요일" "일요일" 4096 0 0x20 ./bin/easy_install

관련 정보