Suponhamos que queremos saber quantos ficheiros de cada tipo existem dentro de uma pasta e todas as suas subpastas no MacOS. O sistema não oferece nenhuma maneira simples de o fazer. Poderíamos fazer isto à mão, mas rapidamente se tornaria fastidioso. Numa pesquisa pela internet encontrei uma solução elegante proposta por Peter Freitag aqui.

Usando a aplicação Terminal, escrevemos o seguinte comando substituído /some/dir pela pasta que queremos pesquisar.

find /some/dir -type f | grep -o ".[^.]\+$" | sort | uniq -c

Este comando devolve a informação que procurávamos. Para uma explicação detalhada do comando ver o artigo original do Peter Freitag.

Este processo rapidamente se torna cansativo, porque envolve abrir o terminal escrever o nome da pasta e o comando que facilmente se pode esquecer. Seria mais simples se tivéssemos um atalho que tratasse de tudo isso por nós. O processo seria algo do género:

  1. Selecionar a pasta (ou pastas) no Finder que queremos pesquisar
  2. Clicar com o botão direito sobre a seleção e escolher a ação do menu.
  3. Ler a informação numa janela.

O processo descrito pode facilmente ser implementado com o Automator com os seguintes passos:

  1. Abrir o Automator e criar um novo documento do tipo “Ação Rápida”
  2. De seguida escolher “Ação Rápida” e clicar em Escolher
  3. Definir o processo para receber pastas como input no Finder
  4. Procurar pela ação “Obter valor da variável” e arrastá-la para o processo.
  5. Arrastar uma variável do tipo “caminho” para o campo da variável na ação anterior
  6. Procurar pela ação “Executar script da shell” e arrastá-la para o processo. Alterar “Fornecer a entrada” para “como argumentos”
  7. Escrever o seguinte comando no campo de texto do script find "$1" -type f | grep -o ".[^.]\+$" | sort | uniq -c
  8. Procurar pela ação “Definir o valor da variável” e arrastá-la para o processo. Criar uma nova variável, ex.: output
  9. Procurar pela ação “Pedir confirmação” e arrastá-la para o processo. Arrastar a variável nova criada no passo anterior para o campo “mensagem”. Nas opções selecionar ignorar os dados resultantes desta ação.
  10. Finalmente, gravar a ação com o nome que queremos que surja no menu do Finder.

O processo deve parecer-se com isto:

Workflow completo

Agora, quando selecionamos uma pasta e clicamos sobre ela com o botão direito, o menu popup contem a nossa ação em Serviços. O comando pode demorar algum tempo a mostrar os resultados se a pasta contiver muitos ficheiros.

Existem dois problemas com o comando usado: os ficheiros sem extensão são mostrados com o caminho completo, e ficheiros com extensões com letras de caixa diferente (ex: jpg e JPG) são contados como tipos de extensão diferentes.


Leave a Reply

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

eight + four =


@