Como isolar a permissão e o nome do arquivo dos resultados de ls -l?

Como isolar a permissão e o nome do arquivo dos resultados de ls -l?

Quero ver apenas o nome do arquivo e a permissão do arquivo correspondente. Como fazer isso?

ls -l dá

-rw-rw-r-- 1 jb jb    102 Apr 28 12:48  hello2.txt
-rw-rw-r-- 1 jb jb    102 Apr 28 12:53  hello.txt

gostaria de ver como abaixo

-rw-rw-r-- 1  hello2.txt
-rw-rw-r-- 1  hello.txt

Responder1

O statcomando é feito para este ex.:

stat -c '%A %n' *.txt

ou

stat --printf '%A\t%n\n' *.txt

onde os especificadores de formato têm os seguintes significados

   %A     access rights in human readable form
   %n     file name

Responder2

Você pode percorrer a maior parte do caminho usando lsele mesmo: ls -lGg --time-style=+imprimirá apenas os modos de acesso, contagem de links, tamanho e nome.

O processamento lsda saída é complicado porque os nomes dos arquivos podem conter praticamente qualquer coisa, então você não pode presumir nada sobre eles durante o processamento. Seria melhor usar findpara imprimir exatamente as informações necessárias usando-printf:

find . -printf '%M %p\n'

(Com opções como -maxdepthusadas conforme apropriado para limitar a listagem.)

Responder3

Você pode canalizá-lo gawke gerar os campos desejados, algo como isto ou semelhante:

ls -l | gawk '{print $1 " " $2 " " $9}'

informação relacionada