como encontrar os arquivos com menos de 5 MB em / var / log / e exibir com o tamanho do arquivo? [duplicado]

1

Eu preciso encontrar os arquivos com menos de 5 MB em / var / log / e a saída deve exibir o tamanho de cada arquivo. qual comando devo usar?

    
por Thasneem Hakkim 23.05.2016 / 08:42

2 respostas

2

Este comando irá encontrar os arquivos em /var/log que são menores que 5M em tamanho e imprimem o tamanho (em kilobytes) junto com o nome do arquivo:

find /var/log -maxdepth 1 -size -5M -type f -printf '%5k %f\n'

A saída de exemplo pode ser semelhante:

  112 syslog.6.gz
 1048 messages.1
  112 syslog.5.gz
  120 syslog.7.gz
 1216 syslog.1

Como funciona

  • -maxdepth 1 informa para não descer em subdiretórios. (Se você quiser que os subdiretórios sejam incluídos, omita isso)

  • -size -5M diz ao Google para limitar os resultados a arquivos com menos de 5 milhões de tamanho.

  • -type f informa ao encontrar para procurar apenas por arquivos regulares.

  • -printf '%5k %f\n' diz ao find para alocar 5 espaços para o tamanho e imprimir o tamanho em kilobytes, seguido por um espaço, seguido pelo nome do arquivo.

por John1024 23.05.2016 / 09:02
1

Isso funciona bem para mim:

find /var/log/ -name * -size -5M -ls | awk '{ print  " has a size of "  }'

Atualização de 01 de junho: Em uma versão mais recente do servidor Ubuntu, o -name * não está disponível, mas agora você pode usar isso:

find /var/log/ -type f -size -5M -ls | awk '{ print  " has a size of "  }'

Se você precisar de uma versão mais legível para humanos, essa seria uma boa opção

find /var/log/ -type f -size -5M -exec ls -lsh {} \; | awk '{ print  " has a size of "  }'
    
por Marcusg562 23.05.2016 / 09:10