아주 잠깐 검색해본 결과로는, find 자체로는 ‘정렬’까지는 해줄 수 없는 듯 하다. 대신, 날짜를 넣어서 출력을 해줄 수는 있다.
내 지식 창고(寶庫라 할만 하다)중 하나인 StackExchange 에서 도움을 얻었다.
먼저, find 로 검색을 한 뒤, 그 파일의 수정 날짜를 출력하려면 %Tk
를 사용한다.
$ find <Dir> -maxdepth 1 -name 'turned_on_by_cubietruck*' -printf "%T@ %p\n" 1601907123.4714274210 /storage/turned_on_by_cubietruck-20201005-2310 1601968924.0174839570 /storage/turned_on_by_cubietruck-20201006-1620
-maxdepth 는 현재 디렉토리에서만 검색하라는 뜻이다.
중요한 부분은 -print 이 후 인데, 여기 형식은 “%Tk %p” 가 된다.
- %Tk : 파일의 최종 수정 시간을 k 형식으로 나타낸다. k 는 다음과 같다.
- @ : 1970.01.01 GMT 이후 현재까지 경과 시간을 ‘초’로 표시
- c : 로캘의 날짜/시간 형식
- %p : 파일명
StackExchange 에서는 %Tk %Tc 를 모두 썼지만, 나는 정렬을 위해서 하나만 사용했다.
이제 저 결과를 가지고 정렬을 한 뒤, 정렬을 위해서만 필요했던 %T@ 부분은 버린다.
find <Dir> -maxdepth 1 -name 'turned_on_by_cubietruck*' -printf "%T@ %p\n" | sort -nr | cut -d " " -f 2- /storage/turned_on_by_cubietruck-20201005-2310 /storage/turned_on_by_cubietruck-20201006-1620
sort 와 cut 는 man page 를 참고하고, 여기선 간단하게만 정리한다.
sort :
-n : 숫자를 기준으로 정렬
-r : 역순 정렬 (내림차순)
cut :
-d ” ” : Deliminator, 즉 필드 구분자로 공백을 사용.
-f 2- : 몇번째 필드부터 끝까지 출력할지 여부. 2- 이므로, 두번째부터 끝까지.
오늘도 즐거운 Linux Command Line 생활!
협찬(?)은, 기타리스트 Chuck Loeb 님께서, 1988년도 앨범 ‘My Shining Hour’ 로 해주심.