Eu gostaria que um comando do Linux encontrasse os arquivos alterados nos últimos n
segundos.
Existe um script de shell ou outra ferramenta que eu possa executar a partir da interface da linha de comandos ou da GUI?
Use o comando find assim:
find . -name "*.txt" -mtime -60s
Para encontrar todos os *.txt
arquivos modificados nos últimos 60 segundos.
find: missing argument to `-mtime'
. No entanto, posso obter o comportamento desejado usando -mmin e um argumento decimal. Não pude encontrar nenhuma referência na página de manual para encontrars
como argumento.-mtime
. Os anos 60 também não são uma opção válida na localização de POSIX ou GNU. O argumento para-mtime
é um número que especifica o número de períodos de 24 horas atrás quando um arquivo foi modificado.A solução com mtime especificando segundos não funciona nos meus sistemas Linux que usam
find --version
==find (GNU findutils) 4.4.2
.Estou tendo o erro a seguir:
No entanto, eu posso usar
-mmin
(para modificado nos últimos m minutos) e pode usar um argumento decimal; por exemplo, o seguinte localiza arquivos modificados nos últimos 30 segundos.Então, por exemplo; criando arquivos modificados pela última vez 1s, 6s, 11s, ... atrás, nos últimos 120 segundos, este comando encontra:
Portanto, se você realmente precisar dele em segundos, poderá fazer algo como:
fonte
Semelhante ao que a glenn sugeriu, se você deseja encontrar tudo modificado, digamos, no período em que um processo do instalador estava em execução, pode ser mais fácil fazer algo como:
Então você não precisa fazer o cálculo do tempo; você apenas encontra as coisas alteradas após o arquivo do ponto de verificação.
fonte
Se você tem uma versão do find que não suporta
-mtime -60s
, uma solução melhor éfonte
A maneira mais simples de fazer isso é:
o
-mtime -60s
opção, mencionada em uma resposta, não funciona em muitas versõesfind
, mesmo em 2016.-newermt
é uma opção muito melhor para nós. Ele pode analisar muitos formatos diferentes de data e hora.Um método alternativo usando
mmin
é o seguinte:Esta opção pode não funcionar para todas as
find
versões.fonte
Se você estiver monitorando um diretório em busca de alterações nos arquivos, provavelmente desejará usar as ferramentas inotify em vez de um loop infinito de pesquisas.
fonte
Se sua versão de
find
não aceitar segundos ou valores reais, assim como a minha, use-mmin
, mas especifique 0, e todos os arquivos serão modificados em menos de um minuto:fonte