업데이트된 날짜별로 파일(하위 디렉터리 포함)을 정렬하고 싶습니다.
나는 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
答え2
정확히 무슨 뜻인지는 모르겠지만 사람에 따라 옵션을 update dates
사용하고 있습니다 .-r
-r 사전식 역순을 가져오거나 가장 오래된 항목을 먼저 가져오려면 정렬 순서를 반대로 바꿉니다(또는 크기별 정렬과 함께 사용하는 경우 가장 큰 파일을 마지막으로 가져옵니다).
시간별로 정렬된 파일이 필요하다면 이 정도면 충분할 것 같습니다.
ls -lRt
나열된 다른 모든 항목이 필요하지 않은 경우 ls
다음을 사용할 수 있습니다.
ls -1Rt
要将结果捕获到文件中,您可以使用重定向运算符>
并指定文件名。所以你可以做这样的事情 -
ls -lRt > sortedfile.list
更新:
find . -type f -exec ls -lt {} +
这将对文件进行排序,以便首先列出最新的文件。要反转排序顺序,在末尾显示最新文件,请使用以下命令:
find . -type f -exec ls -lrt {} +