ls
não tem esse sinalizador, mas o comando stat
permite a exibição de permissões octal. Considere a saída de amostra para um arquivo de teste,
testdir:$ stat TESTER
File: ‘TESTER’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 1197 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ xieerqi) Gid: ( 1000/ xieerqi)
Access: 2015-11-05 17:42:01.914917433 -0700
Modify: 2015-11-05 17:42:01.914917433 -0700
Change: 2015-11-05 18:41:04.463776180 -0700
Birth: -
stat
também tem --format
flag, que permite "simular" ls -l
:
testdir:$ stat --format="%a %h %U %G %s %y %n" * | head -n 3
664 1 xieerqi xieerqi 0 2015-11-05 17:42:01.918917452 -0700 Aaaaaaa.bbb - 0000003 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42:01.922917471 -0700 Aaaaaaa.bbb - 0000004 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42:01.930917509 -0700 Aaaaaaa.bbb - 0000005 tag tag_tag 9tag
A única limitação aqui é que o formato de hora não pode ser alterado e a saída de cores não pode ser adicionada.
Você pode sempre aliasar esse comando em .bashrc
para algum comando mais curto, por exemplo, alias lsl2='stat --format="%a %h %U %G %s %y %n" *'
Como alternativa, criei uma pequena função que usa find
e awk
para formatação mais agradável
function lsl2
{
find . -maxdepth 1 | sort | xargs -I{} stat --format="%a %h %U %G %s %y %n" {} | awk '{=substr(,1,5); =" ";print}'
}
Exemplo de saída
testdir:$ lsl2 | head -n 7
775 3 xieerqi xieerqi 4096 2015-11-05 22:20 .
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000003 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000004 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000005 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000006 tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000006 tag tag_tag 9tag
664 1 xieerqi xieerqi 0 2015-11-05 17:42 ./Aaaaaaa.bbb - 0000007 tag 9tag
testdir:$ type lsl2
lsl2 is a function