quarta-feira, 7 de março de 2012

Listar ficheiros por ordem decrescente de tamanhos (parte 2)

Depois de ter mostrado como listar ficheiros por ordem decrescente de tamanhos com os chamados utilitários Unix como egrep e awk, é interessante criar a mesma solução com perl:

$ perl -E 'for (sort { -s ($b) <=> -s ($a) } <*>) { say -s, " $_" if (-f); };'

Cuidado: este one-liner (programa numa linha) está carregado de defaults.

Curiosamente, este programa permitiu detetar um bug no anterior: os nomes dos ficheiros aparecem truncados se houver espaços no nome. Além disso, conseguimos listar aqui apenas ficheiros 'comuns' (não são incluídos ficheiros 'especiais' como ficheiros de dispositivos ou sockets).

O alias correspondente seria

alias listar_dec="perl -E 'for (sort { -s (\$b) <=> -s (\$a) } <*>) { say -s, \" \$_\" if (-f); };'"

Sem comentários:

Enviar um comentário