![ls를 사용하여 권한별로 파일을 정렬하는 방법은 무엇입니까?](https://linux55.com/image/58593/ls%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B6%8C%ED%95%9C%EB%B3%84%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%A0%95%EB%A0%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
디렉토리에 많은 수의 파일과 디렉토리가 있습니다.
권한을 기준으로 정렬해야 합니다.
예를 들어
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 -l
awk를 사용하여 제거할 수 있습니다.
ls -l | sort | awk '{ print $1, $NF}'
그러면 첫 번째 필드(권한)와 마지막 필드(파일 이름)만 인쇄됩니다.
답변2
8진수 값으로 정렬할 수도 있습니다.
for i in *; do stat --format="%a %n" "$i"; done | sort -n