Sintaxe alternativa para encontrar arquivos por data com o comando find

Publicado por Fábio Berbert de Paula em 26/05/2022

[ Hits: 2.977 ]

Blog: https://fabio.automatizando.dev

 


Sintaxe alternativa para encontrar arquivos por data com o comando find



Documentando esta sintaxe porque é muito útil pra mim e com certeza voltarei aqui para consultá-la futuramente. Trata-se de uma forma de imprimir a lista de arquivos de determinado diretório mostrando a data em formato universal, tornando assim fácil filtrar arquivos modificados em determinada data.

Para listar todos os arquivos de um diretório ordenados por data de forma crescente:

find -printf "%TY-%Tm-%Td %TT %p " | sort -n

Exemplo de saída:

2018-06-24 17:15:15.0314690000 ./mysql/roles_mapping.MYD
2018-06-24 17:15:15.0314690000 ./mysql/roles_mapping.MYI
2018-06-24 17:15:15.0314690000 ./mysql/roles_mapping.frm
2018-06-24 17:15:15.0394686640 ./mysql/servers.MYD
2018-06-24 17:15:15.0394686640 ./mysql/servers.MYI


A formatação de string presente no printf está bem autoexplicativa. Me aterei a dizer que o "%p" significa o nome do arquivo. O comando "sort -n" ordena os valores de forma numérica (-n).

Para inverter a ordenação, basta trocar "sort -n" por "sort -nr" (-r = reverse):

find -printf "%TY-%Tm-%Td %TT %p " | sort -nr

2022-05-24 15:58:53.3612653160 ./ibdata1
2022-05-24 15:58:53.3532653450 ./ib_logfile0
2022-05-24 15:58:52.3452689620 ./aria_log_control
2022-05-24 15:58:52.3452689620 ./aria_log.00000001
2022-05-24 15:58:52.3372689910 ./mysql/slow_log.CSM
2022-05-24 15:58:52.3332690060 ./mysql/general_log.CSM


Desse jeito fica bem fácil encontrar um arquivo que foi modificado, digamos, no dia 01/01/2022:

find -printf "%TY-%Tm-%Td %TT %p " | grep '2022-01-01'

O comando "find" por padrão é recursivo. Se quiser executar esse comando somente no diretório corrente, sem entrar nos subdiretórios, acrescente o parâmetro "-maxdepth 1". Exemplo:

find -printf "%TY-%Tm-%Td %TT %p " -maxdepth 1

Até a próxima!

Outras dicas deste autor

Vim - selecionar tudo e copiar fácil

Renomeando um usuário no Linux

Imprimindo repetidamente uma palavra ou frase na tela

SED - combinando o conteúdo de dois arquivos

Verificar o status da bateria via linha de comando

Leitura recomendada

Auto correção no comando cd

Verificação automática de disponibilidade de serviços

Entenda como funciona o controle de restrições no Linux

Como reparar Portage danificado

Encontrando o par de chaves ou parênteses no VIM

  

Comentários
[1] Comentário enviado por leoCCB em 28/05/2022 - 01:05h


continua postando... essas dicas aí sempre me ajudam de find e com regex sempre ajudam muito!!

[2] Comentário enviado por maurixnovatrento em 06/07/2022 - 12:09h


boa dica.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts