Como limitar a saída de ls para mostrar apenas nome do arquivo, data e tamanho?

18

Como posso usar ls no linux para obter uma lista de nomes de arquivos apenas com data e tamanho? Eu não preciso ver as outras informações, como proprietário, permissão.

    
por Pinkie 07.10.2011 / 05:23

5 respostas

22

ls -l | awk '{print $5, $6, $7, $9}'

Isso imprimirá o tamanho do arquivo em bytes, mês, data e nome do arquivo.

jin@encrypt /tmp/foo % ls -l
total 0
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 bar
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 baz
drwxr-xr-x  2 jin  wheel  68 Oct  4 12:43 quux

jin@encrypt /tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux
    
por 07.10.2011 / 05:30
8

Tecnicamente, não é possível com ls , mas find pode fazer o mesmo trabalho com a opção -printf :

find -maxdepth 1 -printf '%t %s %p\n'
    
por 07.10.2011 / 08:41
4

Outro caminho que não é ls :

> stat --printf='%y\t%12s\t%-16n|\n' tmp.*
2017-06-15 10:42:07.252853000 +0200         10485760    tmp.1           |
2017-06-15 10:41:25.659570000 +0200              666    tmp.TKPzm3BfRw  |

Explicação: %y = data de modificação legível por humanos; %s = tamanho em bytes ( %12s alinhado à direita, comprimento 12); %n = nome do arquivo ( %-16n alinhado à esquerda, tamanho 16); \t = tab, \n = alimentação de linha. | = literal pipe char, apenas para mostrar o final do nome do arquivo.

Como ls , stat não tem opções para selecionar quais arquivos serão exibidos. (Isso pode ser feito pelo shell globbing como mostrado acima ou por algum find ... -print0 | xargs -r0 stat ... , por exemplo).

    
por 15.06.2017 / 11:03
3

você sempre pode fazer:

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file1
-rw-r--r--  1 user  staff  0 Oct  6 23:29 file2
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file3
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file4
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file5
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file6
-rw-r--r--  1 user  staff  0 Oct  6 23:30 file7

cut para:

$ ls -l | cut -f 8-13 -d ' '

0 Oct  6 23:29 file1
0 Oct  6 23:29 file2
0 Oct  6 23:30 file3
0 Oct  6 23:30 file4
0 Oct  6 23:30 file5
0 Oct  6 23:30 file6
0 Oct  6 23:30 file7

$ 
    
por 07.10.2011 / 05:32
2

Pequena variação no tolitius

ls -lh | cut -f 6- -d ' '
    
por 09.07.2012 / 11:56

Tags