classificar arquivos maiores que 1000 bytes em ordem descendente

0

Eu posso classificar os arquivos em ordem decrescente (de qualquer tamanho) ou listar todos os arquivos com mais de 1000 bytes, mas não sei como classificar arquivos maiores que 1000 bytes em um diretório especificado pelo usuário.

Listar arquivos com mais de 1000 bytes:

for i in "$1/*" # $1 expects a directory name
do
    if [ 'wc -c $i' -gt 1000 ]
        echo $i
done

Listar arquivos em ordem decrescente de tamanho:

'ls -lhS'

Mas como listar todos os arquivos com mais de 1000 bytes em ordem decrescente de tamanho?

    
por Mayank Kumar 27.09.2017 / 07:17

1 resposta

3

Tente isto :

find . -maxdepth 1 -size +1000c -type f -exec ls -lhSa '{}' +

Explicação :

-maxdepth 1 - encontra arquivos apenas no diretório atual

-size +1000c - encontre somente arquivos maiores que 1000 bytes (" c " = bytes)

-type f - encontre somente arquivos

-exec <command> {} + - execute o comando. Veja man find para mais informações

Se você não quiser usar find (não sei por que), você pode digitar (thx @ αғsнιη ):

ls -lpSa | awk '! /\// && $5>1000'

Mas Por que não analisam ls ?

    
por 27.09.2017 / 07:34