가장 최근에 업데이트된 파일 10개를 인쇄하여 검색 결과를 정렬하려면 어떻게 해야 합니까?

가장 최근에 업데이트된 파일 10개를 인쇄하여 검색 결과를 정렬하려면 어떻게 해야 합니까?

내 Linux 컴퓨터에서 사용자가 최근에 편집한 파일을 알고 싶습니다.

/home최근에 편집된 최대 10개의 파일을 반복적으로 검색 하고 싶다고 가정해 보겠습니다.

find 명령이나 다른 솔루션을 사용하여 이 작업을 어떻게 수행할 수 있습니까?

예상 출력의 예:

27/6/2018 11:23 /home/my_data/file
27/6/2018 10:21 /home/top/oo/pp/file
27/6/2018 09:23 /home/my_data/GG/file

답변1

현재 디렉터리에서 최신 10개 파일을 찾습니다.

find -type f -printf "%TY-%Tm-%Td %TH:%TM:%TS\t%h/%f\n" | sort -r | head -n 10

선택적으로 | cut -f2시간 정보를 제거하려면 추가하세요.

-printf옵션을 사용하면 find파일 이름 앞에 파일 수정 시간을 탭으로 구분하여 인쇄할 수 있습니다. 여기서 시간 형식은 간단히 sort. sort -r최신(즉, "가장 큰") 시간을 처음에 넣으려면 역순으로 정렬하세요.

개행 문자가 포함된 파일 이름의 경우 이는 약간 감소합니다. 이 문제는 printf 문자열을 종료하지 \n않고 \0null로 끝나는 파일 이름을 사용하여 해결할 수 있습니다 . 그런 다음 --zero-terminated정렬 옵션을 추가하고 | tr '\0' '\n'끝에 넣어 null 바이트를 다시 개행 문자로 변환합니다.

답변2

재귀적으로 나열

ls -lRrt

모든 파일을 찾아 날짜가 변경된 순서대로 나열하고 싶다면

ls -lrt `find . -type f`

이를 수행하는 방법은 아마도 10,000가지가 될 것입니다.

관련 정보