find의 출력을 정렬하는 방법은 무엇입니까?

find의 출력을 정렬하는 방법은 무엇입니까?

저는 find 명령을 사용하여 이름에 문자열이 포함된 파일을 나열하고 있습니다. find ~/ -type f -name "*inductive*" 파이프를 사용하여 결과 파일 목록을 정렬하고 싶습니다. 파일 크기, 생성 날짜, 액세스 날짜별로 정렬하고 싶습니다. 어떻게 해야 합니까? 감사해요.

답변1

Linux에서는 생성 시간을 기준으로 출력을 정렬하는 것이 불가능합니다( ctime파일 생성 날짜가 아님). stat파일을 표시하는 기능이 있습니다.출생 시간%w및 형식 태그를 사용 %W하지만 생성 시간/생년 시간을 저장하는 파일 시스템에서도 항상 -및 각각 표시됩니다. 0따라서 Linux에서는 이 목적에 실질적으로 쓸모가 없습니다.

하지만 다른 두 가지 정렬 순서도 가능합니다.

# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n

# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M

-r플래그를 추가하여 sort정렬 순서를 반대로 할 수 있습니다 . 자세한 내용은 을 참조하세요 man sort.

의 출력 크기에 따라 에서 정렬된 출력을 생성하는 find데 다소 시간이 걸릴 수 있습니다 sort.

관련 정보