como ordenar arquivos por suas permissões usando ls?

3

Eu tenho um grande número de arquivos e diretórios em um diretório.

Eu preciso classificá-los em termos das permissões.

Por exemplo

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

Estou apenas imaginando se podemos classificar os arquivos e dirs usando ls ?

    
por Chenming Zhang 31.10.2014 / 13:18

2 respostas

7

ls não suporta diretamente a ordenação por permissões, mas você pode combiná-la com o comando sort:

ls -l | sort

Você pode usar a opção -k para classificar a correspondência inicial de um caractere específico, o formato é -k FIELD.CHAR , as permissões são o primeiro campo na saída ls . Então, por exemplo, -k 1.2 será iniciado a partir do segundo caractere da cadeia de permissão, que irá ignorar qualquer sinalizador de diretório / dispositivo / link etc. ou -k 1.5 para classificação por permissões de grupo.

Se você não quiser a saída adicional de ls -l , você pode removê-lo com o awk:

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

Isso imprimirá apenas o primeiro campo (as permissões) e o último (o nome do arquivo).

    
por 31.10.2014 / 13:37
2

Você também pode classificar por valor octal.

for i in *; do stat --format="%a %n" "$i"; done | sort -n
    
por 31.10.2014 / 16:30

Tags