Sintaxe alternativa para encontrar arquivos por data com o comando find

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

[ Hits: 3.946 ]

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

Conectando Linux com celulares através de Bluetooth

Convertendo varchar em date no MySQL

Como desabilitar ou remapear um botão físico do teu smartphone

SSH sem senha não funciona? Eis a solução

Javascript - pegar um elemento aleatório de uma lista

Leitura recomendada

Lidando com compactação de arquivos

Wget - baixar tipo específico de arquivos de url

Aprenda a usar apt-cache no Mint, Ubuntu e derivados

Usando o comando fc-match para o LibreOffice

Como matar (fechar) um programa por meio de ssh, em uma outra máquina

  

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