GNU FIND: Simplificando a busca por arquivos em um intervalo de datas

Se você já precisou localizar arquivos criados em determinado período e usando o Gnu find já deve ter se deparado com a complexidade de se usar os parâmetros para esta tarefa. Por conta da minha necessidade de lidar com alguns milhões de arquivos diariamente eu acabei desenvolvendo um script que funciona como complemento para o find e que simplifica esta tarefa.

O script está disponível no repositório público no meu Github e pode ser clonado a vontade. As instruções para instalação e uso são bem simples de serem entedidas, independente do seu nível de experiência com linha de comando.

O scrip foi concebido para funcionar dentro de um subshell e a “mágica” é que ele recebe as instruções que damos e as converte na estrutura de parâmetros corretos para que o GNU find possa lidar com datas de forma simplificada.

Assim, digamos que eu queira listar todos os arquivos na minha pasta de Imagens que foram criados em março. Usaríamos o seguinte comando:

Se quiser especificar o ano também, por exemplo, quais arquivos foram recebidos em Novembro de 2018 então basta usar o parâmetro –inyear, assim:

A partir daí a necessidade é o que ditará o limite para como se pode localizar arquivos com este complemento.

Por exemplo se precisar responder qual é espaço ocupado por estes arquivos, ao invés do “-ls”, bastaria usar o “-printf” do find e redirecionar isso para um “one-line awk script” assim:

Para conhecer todos os parâmetros disponíveis você pode executar o comando finindate diretamente na linha de comandos usando o parâmetro “–help” para ver os demais parâmetros disponíveis.

Deixe nos comentários seu parecer sugestões e críticas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.