디렉토리 목록을 알파벳순으로 정렬

디렉토리 목록을 알파벳순으로 정렬

디렉토리를 알파벳순으로 내림차순으로 정렬해야 하는데 정렬 파이프라인이 작동하지 않습니다.

alias ld='ls -altp | grep ^d|sort -n'

답변1

ls -ld */

그러면 현재 디렉토리의 긴 형식의 목차가 ls사전순으로 정렬되어 제공됩니다. 파일이 디렉토리에 대한 심볼릭 링크인 경우 파일도 디렉토리로 나열됩니다.

ls어떤 항목에 별칭을 사용하는 경우 위 대신 command ls또는를 사용하세요 .\lsls

뒤에 오는 슬래시는 디렉터리만 확장되고(심볼릭 링크를 확인하여) 출력에도 포함되도록 합니다 *. *-d옵션을 사용하면 디렉토리 내용이 아닌 디렉토리 자체가 나열됩니다.

~처럼제프는 지적한다, 별칭 이름을 지정하는 ld것은 기존 유틸리티 이름과 충돌하기 때문에 좋지 않습니다.

답변2

출력을 구문 분석하지 마십시오 ls. 이것은 나쁜 생각이며 기분이 나빠질 것입니다. 대신 find목차 ls를 정렬 해 드리겠습니다.그런 다음 출력을 씹으려고하지 마십시오:

$ find . -maxdepth 1 -type d -print0 | xargs -0 ls -ld

다행스럽게도 ls출력은 기본적으로 이미 사전순으로 정렬되어 있습니다.

더 간단하게는 다음과 같습니다 tree.

$ tree -d -L 1

답변3

sort긴 목록을 정렬하라고 하더군요ls 수치적으로. 수정시간( ) ls순으로 목록을 정렬하라고 지시한 후입니다 !t

단기적인 수정을 위한 최선의 조언은 다음과 같습니다.

ls -d */ | sort # optionally `-f` to sort upper- and lower-case together.

디렉토리를 선택할 수 있는 zsh와 같은 쉘을 사용하는 것이 좋습니다그리고스스로 정렬하십시오.

zsh -c "ls -ld */(on)"

/디렉토리만 원한다고 지정하는 경우 한정자는 (on)목록이 디렉토리 이름을 기준으로 정렬됨을 의미합니다.

또한 과부하를 주지 않는 것이 좋습니다.ld프로그램명.

alias lls='zsh -c "ls -ld */(on)"'

관련 정보