Software du2sort

#lab, #software
Não dou mais manutenção nesse script, passei a usar o [dut](https://github.com/sorin-ionescu/prezto/blob/master/modules/utility/functions/dut).

Programa para ordenar a saída do comando du.

A necessidade

O programa du exibe a estimativa de uso do disco de determinado arquivo ou diretório (com o uso do parâmetro s`), mas sua saída não é ordenada:

$ du -sh ~/programming/*
2,4M    /home/dmitry/programming/asm
160K    /home/dmitry/programming/awk
11M /home/dmitry/programming/cpp
123M    /home/dmitry/programming/java
7,8M    /home/dmitry/programming/Linux_Programming.pdf
792K    /home/dmitry/programming/lua
200K    /home/dmitry/programming/make
43M /home/dmitry/programming/netbeans
5,3M    /home/dmitry/programming/perl
4,1M    /home/dmitry/programming/python
42M /home/dmitry/programming/ruby
4,8M    /home/dmitry/programming/sed
2,1M    /home/dmitry/programming/shell

Isso é resolvido facilmente pelo sort:

$ du -s ~/programming/* | sort -nr
125656  /home/dmitry/programming/java
43540   /home/dmitry/programming/netbeans
42604   /home/dmitry/programming/ruby
11152   /home/dmitry/programming/cpp
7916    /home/dmitry/programming/Linux_Programming.pdf
5352    /home/dmitry/programming/perl
4896    /home/dmitry/programming/sed
4168    /home/dmitry/programming/python
2440    /home/dmitry/programming/asm
2096    /home/dmitry/programming/shell
792 /home/dmitry/programming/lua
200 /home/dmitry/programming/make
160 /home/dmitry/programming/awk

Mas o parâmetro h não usado faz com que seja necessário novamente rodar du -sh` para voltar a visão humana.

A necessidade surgiu da repetição.

Descrição

Como visto anteriormente o du2sort ordena a estimativa de uso do disco:

$ du2sort ~/programming/
123M    java
43M netbeans
42M ruby
11M cpp
7,8M    Linux_Programming.pdf
5,3M    perl
4,8M    sed
4,1M    python
2,4M    asm
2,1M    shell
792K    lua
200K    make
160K    awk

Para ver somente diretórios:

$ du2sort -d ~/programming/
123M    java/
43M netbeans/
42M ruby/
11M cpp/
5,3M    perl/
4,8M    sed/
4,1M    python/
2,4M    asm/
2,1M    shell/
792K    lua/
200K    make/
160K    awk/

Para ver somente arquivos específicos:

% du2sort ~/programming/{ruby,hell}
42M /home/dmitry/programming/ruby
2,1M    /home/dmitry/programming/shell

Veja na saída de ajuda do du2sort, quando eu aprender a fazer páginas de manual eu faço uma:

% du2sort -h
Usage:
  du2sort                       to sort all files of working directory
  du2sort -d                    to sort only directories of working directory
  du2sort -d <directory>        to sort only directories of selected directory
  du2sort <directory>           to sort all files of selected directory
  du2sort <file> <file> ...     to sort selected files

Bugs

Este script é derivado do du, por isso, mostra a estimativa de uso do disco. Isso significa que, por exemplo: a instalação padrão Debian usa blocos de 4K por isso diretórios e arquivos terão no mínimo 4k, veja o exemplo a seguir de quatro diretórios vazios:

$ mkdir ola{1,2,3,4} >> du2sort ola*
4,0K    ola4
4,0K    ola3
4,0K    ola2
4,0K    ola1

Ainda não é reconhecido espaços em nomes de arquivos:

$ ls ~/.wine/drive_c
Arquivos de programas
windows

$ du2sort ~/.wine/drive_c
2,9M    windows
du: impossí­vel acessar `Arquivos': Arquivo ou diretório não encontrado

Download

Páginas e arquivos principais:

  • Filtre os posts dessa categoria;
  • O pacote debian: du2sort4.0.2release1all.deb;
  • O shell script puro, sem página de manual: du2sort;
  • Ou você pode adicionar o Repositório do Site.