Låt ls visa filrättigheter i oktal form

Jag har länge retat mig på att kommmandot ls i *nix inte kan visa filrättigheter i oktal form. Alltså såhär: 755, istället för såhär: drwxr-xr-x. Men det finns lösning, kör det här kommandot:

ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'

För en mer permanent lösning kan du skriva in följande alias i din ~/.bashrc fil:

alias lo="ls -la --color | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

För att få Bash att läsa in ändringen i filen måste du köra detta kommando:

exec bash 

Som synes har jag valt lo som alias, det är för att jag tycker det är logiskt (list octal). Det är också viktigt att det inte finns något annat kommando i systemet, som heter lo. Här är så de oktala siffrorna längst till vänster på bilden.

Oktalt i terminalen
Oktalt i terminalen

 

Share