ls -lS na saída do find não classifica a saída

0

Como sabemos, ls -S listará todos os arquivos ordenados por tamanho.

O que eu estou tentando fazer é listar todos os arquivos no diretório /usr ordenado por tamanho. Então eu executei o comando como abaixo:

find /usr -type f -exec ls -lS {} \;

No entanto, não parece que este comando liste todos os arquivos ordenados por tamanho ... -S não funciona aqui.

    
por Yves 06.03.2018 / 03:34

2 respostas

4

Você solicitou explicitamente que find pesquisasse por arquivos ( -type f ) e, quando encontrou um, solicitou a execução de ls -lS . Você não pode nem mesmo consertar isso com a extensão GNU find de + para passar mais de um arquivo de cada vez, já que pode haver muitos arquivos para passar para ls de uma só vez.

Em vez disso, usando o GNU find, peça para ele imprimir o tamanho do arquivo e o nome do arquivo e, em seguida, passe-o para sort , todos delimitados por nulos.

find /usr -type f -printf "%s %p\n
0 /usr/lib/python2.7/dist-packages/pkg_resources/_vendor/__init__.py
0 /usr/lib/python2.7/dist-packages/python_debian-0.1.30.egg-info/requires.txt
0 /usr/lib/python2.7/email/mime/__init__.py
... output omitted ...
24013304 /usr/lib/gcc/i686-linux-gnu/6/cc1plus
25675008 /usr/lib/i386-linux-gnu/libicudata.so.57.1
49547156 /usr/lib/i386-linux-gnu/libLLVM-3.9.so.1
"|sort -zn

Exemplo de saída:

find /usr -type f -printf "%s %p\n
0 /usr/lib/python2.7/dist-packages/pkg_resources/_vendor/__init__.py
0 /usr/lib/python2.7/dist-packages/python_debian-0.1.30.egg-info/requires.txt
0 /usr/lib/python2.7/email/mime/__init__.py
... output omitted ...
24013304 /usr/lib/gcc/i686-linux-gnu/6/cc1plus
25675008 /usr/lib/i386-linux-gnu/libicudata.so.57.1
49547156 /usr/lib/i386-linux-gnu/libLLVM-3.9.so.1
"|sort -zn
    
por 06.03.2018 / 03:47
1

Se você quiser a saída no formato ls -l , você pode usar

find . -type f -exec ls -l {} \;|sort -n -k5

Amostra

$ find . -type f -exec ls -l {} \;|sort -n -k5
-rw-rw----+ 1 utsav utsav 0 Mar  6 02:23 ./file5.txt
-rw-rw----+ 1 utsav utsav 12 Mar  6 01:57 ./a.txt
-rw-rw----+ 1 utsav utsav 15 Mar  6 02:10 ./foo.txt
-rw-rw----+ 1 utsav utsav 15 Mar  6 02:11 ./c.txt
-rw-rw----+ 1 utsav utsav 27 Mar  6 01:57 ./b.txt
    
por 06.03.2018 / 08:26

Tags