ls를 사용하여 권한별로 파일을 정렬하는 방법은 무엇입니까?

ls를 사용하여 권한별로 파일을 정렬하는 방법은 무엇입니까?

디렉토리에 많은 수의 파일과 디렉토리가 있습니다.

권한을 기준으로 정렬해야 합니다.

예를 들어

drwx------
drwxr-xr-x 
drwxr-x---

ls?를 사용하여 파일과 디렉터리를 정렬할 수 있는지 알고 싶습니다 .

답변1

ls권한별 정렬은 직접 지원되지 않지만 sort 명령과 함께 사용할 수 있습니다.

ls -l | sort

정렬 옵션을 사용하여 -k특정 문자부터 일치를 시작할 수 있습니다. 형식에서 권한은 출력의 첫 번째 필드 -k FIELD.CHAR입니다 . ls예를 들어 -k 1.2권한 문자열의 두 번째 문자로 시작하여 디렉터리/장치/링크 등의 플래그를 무시하거나 -k 1.5그룹 권한별로 정렬합니다.

추가 출력을 원하지 않으면 ls -lawk를 사용하여 제거할 수 있습니다.

 ls -l | sort | awk '{ print $1, $NF}'

그러면 첫 번째 필드(권한)와 마지막 필드(파일 이름)만 인쇄됩니다.

답변2

8진수 값으로 정렬할 수도 있습니다.

for i in *; do stat --format="%a %n" "$i"; done | sort -n

관련 정보