Como posso, por exemplo, listar cinco arquivos maiores em / usr / lib -directory?

0

Como posso, por exemplo, listar cinco arquivos maiores no diretório /usr/lib ?

Por favor, adicione também algumas pequenas explicações para cada bit de código que você está usando.

    
por cash 15.11.2013 / 15:24

2 respostas

3

O mais fácil seria simplesmente classificar por tamanho e imprimir as últimas 5 linhas:

ls -Sr /usr/lib | tail -n 5

De man ls :

   -r, --reverse
          reverse order while sorting
   -S     sort by file size

tail apenas imprime as últimas N linhas de um arquivo:

   -n, --lines=K
          output the last K lines, instead of the last 10; or use -n +K to
          output lines starting with the Kth

Se você também quiser verificar arquivos em subdiretórios, poderá fazer isso:

find /usr/lib -type f -ls | sort -gk7 | tail -n 5

O comando find procura por arquivos, de man find :

   -type c
          File is of type c:
          [ ... ]
          f      regular file
   -ls    True;  list  current file in ls -dils format on standard output.
          The block counts are of 1K blocks, unless the environment  vari‐
          able  POSIXLY_CORRECT  is set, in which case 512-byte blocks are
          used.  See the UNUSUAL FILENAMES section for  information  about
          how unusual characters in filenames are handled.

sort faz o que você esperaria, ele classifica sua entrada. De man sort :

   -g, --general-numeric-sort
          compare according to general numerical value
   -k, --key=KEYDEF
          sort via a key; KEYDEF gives location and type

Portanto, classifique -g para classificar em ordem numérica e -k7 classifica no sétimo campo que, no caso de find -ls , é o tamanho do arquivo.

Isso deve ser relativamente robusto e não tem problemas com nomes de arquivos com espaços ou caracteres estranhos. Em qualquer caso, uma vez que você está pesquisando através de /usr/lib , é improvável que você tenha nomes de arquivos estranhos.

    
por 15.11.2013 / 15:25
-1

ls -lSr | cauda -5
Isso vai funcionar

-r para reversão -l para listagem longa -S é a opção para classificar o tamanho do arquivo.

    
por 16.11.2013 / 23:52