想要按更新日期对文件(包括子目录)进行排序

想要按更新日期对文件(包括子目录)进行排序

업데이트된 날짜별로 파일(하위 디렉터리 포함)을 정렬하고 싶습니다.

나는 ls -lrtR | grep ^-. 하지만 업데이트 날짜별로 정렬되지 않는 것 같습니다.

이 목록을 파일로 저장해야 합니다. 가능합니까?

Apr 01 2010  InsideDoosanServiceImpl.class  // in A directory
Apr 08 2010  MainController.class  // in B directory
Apr 07 2010  RecommendController.class  // in B directory
Apr 01 2010  MainDao.class  // in B directory

내 말은 전체 목록이 날짜별로 정렬되지 않고 먼저 폴더별로 정렬된 다음 날짜별로 정렬된다는 것입니다.

모든 하위 디렉터리를 포함하여 먼저 날짜별로 목록을 정렬하고 싶습니다.

ベストアンサー1

ls를 사용하면 -R은 디렉토리로 재귀하고 -t는 수정 사항을 기준으로 정렬합니다. 그러나 디렉터리를 재귀적으로 순회하며 각 디렉터리에 -t를 적용합니다. 모든 디렉토리의 모든 파일을 모아서 정렬하지는 않습니다. (제가 이해한 바로는 후자가 원하는 것입니다)

gnu find(1)을 사용하면 에포크 이후의 초 수와 파일 이름을 포함하도록 출력 형식을 지정할 수 있으며, 그런 다음 이를 sort(1)로 파이프할 수 있습니다.

find . -type f -printf "%T@ %f\n" | sort -n > out.txt

おすすめ記事