디렉토리 목록을 역순으로 정렬

디렉토리 목록을 역순으로 정렬

디렉토리 목록을 알파벳 역순으로 정렬하려고 합니다.

왜 무작위 주문을 받나요?

    ls -l /usr/bin/ | sort -r

편집: 명령 정렬을 사용해야 했습니다.

답변1

ls정리 해보자 :

ls -l -r /usr/bin

그렇지 않으면

ls -lr /usr/bin

목록을 반대 순서로 정렬 하는 표준 -r옵션 입니다. 수정 타임스탬프를 정렬하는 데 사용 ls하도록 요청하면 목록의 순서도 반대로 됩니다.ls-t-r

명령 파이프라인은 출력의 권한, 소유권 등을 기준으로 정렬되며 ls -l두 항목에 대해 다른 모든 정보가 동일하지 않으면 파일 이름은 고려되지 않습니다.


이런 건 물어보시지 않았지만 흔한 일이고 보통 출력 정렬에 대해 물어본 후 다음 단계이기 때문에 ls... 실제로 처음이나 마지막으로 정렬된 디렉터리 목록에서 파일 이름을 추출하려면,사용하지 마세요ls, 대신 배열 또는 위치 매개변수를 사용하세요.

첫 번째 파일 이름:

names=(/usr/bin/*)
printf '%s\n' "${names[0]}"

또는

set -- /usr/bin/*
printf '%s\n' "$1"

최종 파일 이름:

names=(/usr/bin/*)
printf '%s\n' "${names[-1]}"

또는

set -- /usr/bin/*
shift "$(( $# - 1 ))"
printf '%s\n' "$1"

마찬가지로 가장 최근에 수정된 파일(또는 디렉터리)을 얻는 가장 좋은 방법 bash은 다음과 같습니다 .

set -- /usr/bin/*
newest=$1; shift
for pathname do
    [ "$pathname" -nt "$newest" ] && newest=$pathname
done

printf 'Newest: %s\n' "$newest"

가장 오래된(가장 최근에 수정된) 파일을 가져오도록 -nt테스트 를 변경합니다 .-ot

답변2

전체 문자열을 키로 사용하여 정렬하려고 합니다.

객체 이름은 9열에 기록되므로 다음을 사용해야 합니다.

ls -l /usr/bin/ | sort -k9 -r

관련 정보