내 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
않고 \0
null로 끝나는 파일 이름을 사용하여 해결할 수 있습니다 . 그런 다음 --zero-terminated
정렬 옵션을 추가하고 | tr '\0' '\n'
끝에 넣어 null 바이트를 다시 개행 문자로 변환합니다.
답변2
재귀적으로 나열
ls -lRrt
모든 파일을 찾아 날짜가 변경된 순서대로 나열하고 싶다면
ls -lrt `find . -type f`
이를 수행하는 방법은 아마도 10,000가지가 될 것입니다.