Procurando arquivos por tamanho

5

Eu tenho que encontrar arquivos por tamanho. Tamanhos são parâmetros. O resultado dos arquivos encontrados deve ser salvo no arquivo. Eu já tenho isso:

touch result.txt 
find /var/log -type f -size  -size  -exec ls {} \; > result.txt 

script mostra-me alguns resultados, mas não tenho certeza de que eles estão certos e nada está salvando para arquivo.
Alguém pode ajudar?

    
por J.Smith 02.11.2017 / 11:00

2 respostas

8

use como:

find /var/log -type f -size -10M -size +1M -exec ls {} \; > result.txt

Ele armazenará os nomes dos arquivos com tamanho maior que 1Mb e menor que 10Mb.

cat result.txt
/var/log/wtmp
/var/log/audit/audit.log.1
/var/log/audit/audit.log
/var/log/anaconda/journal.log
/var/log/mongo/mongod-11.0.0.11.log

Se você passar como parâmetros de entrada, use como:

find /var/log -type f -size -""M -size +""M -exec ls {} \; > result.txt

Abaixo estão as unidades disponíveis para tamanho.

  -size n[cwbkMG]
          File uses n units of space, rounding up.  The following
          suffixes can be used:

          'b'    for 512-byte blocks (this is the default if no suffix
                 is used)

          'c'    for bytes

          'w'    for two-byte words

          'k'    for Kibibytes (KiB, units of 1024 bytes)

          'M'    for Mebibytes (MiB, units of 1024 * 1024 = 1048576
                 bytes)

          'G'    for Gibibytes (GiB, units of 1024 * 1024 * 1024 =
                 1073741824 bytes)
    
por pl_rock 02.11.2017 / 11:16
2

Os arquivos encontrados podem ser ordenados numericamente (usando a coluna de tamanho) como este

find /var/log -ls |sort -nk7

Você pode armazenar o resultado em um arquivo, se desejar

find /var/log -ls |sort -nk7 > result.txt
    
por sudodus 02.11.2017 / 11:22