Usando find -mmin para localizar arquivos com hora de modificação no futuro


9

Eu posso usar

find . -mmin -5

para encontrar arquivos alterados nos últimos 5 minutos. No entanto, se eu tentar encontrar arquivos com tempo de modificação no futuro, o número negativo findse recusa a fazê-lo:

find . -mmin --1

Existe uma maneira de dar tempo de modificação futura ao Linux padrão find?

Respostas:


9

Para encontrar arquivos modificados pelo menos 5 dias no futuro, use:

find . -newermt "5 days"

A sintaxe para a especificação de horário corresponde àquela para date -d. Consulte man findpara obter informações sobre o switch nomeado -newerXYpara obter mais informações.

Não é possível usar, por exemplo, -mminpara fazer isso. Foi relatado como um bug contra o GNU find , e foi resolvido implementando -newerXYno findutils 4.3.3 (~ 2007) como mostrei acima.


Aparentemente, não foi o GNU que foi usado, mas o BusyBox.

Você poderá criar um arquivo temporário com touch -duma data no futuro e usar a -neweropção para find:

touch -d "+5 days" tmpfile
find . -newer tmpfile

O BusyBox touchnão suporta esse formato de data, mas o princípio é o mesmo e seus findsuportes -newer. A criação do arquivo de referência com uma data correta é deixada como um exercício para o leitor (sempre conveniente para escrever).


Obrigado. Meu problema é que minha descoberta é antiga, BusyBox incorporado e não binutil. Aparentemente, o modo linux padrão não funciona aqui. :(
— Muxecoid

@Muxecoid: Atualizei minha resposta com algumas observações do BusyBox.
— 22612 Daniel Andersson

Isso acabou me poupando problemas em uma nova máquina na qual eu havia feito algo dez horas no futuro por acidente (deslocamento de fuso horário aplicado a um relógio de hardware já compensado) e, depois de fixar o relógio, um configurescript reclamou que as coisas estavam no futuro (por um mais ou menos uma hora e meia): find . -newermt '1 hour' | xargs touch -d '-9 hours'e posso continuar. :-)
— Chris Morgan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.