Encontre todos os arquivos com mais de um minuto

Encontre todos os arquivos com mais de um minuto

Como posso usar findpara selecionar arquivos que foram gravados e não modificados no último minuto?

Eu sei que posso fazer o contrário, encontrar arquivos modificados nos últimos 60 segundos com -mtime -60s, mas quero aqueles que não foram modificados nos últimos 60 segundos.

Eu uso Linux e recebo este erro se usar segundos:

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'

Responder1

Usarfind /path -type f -mtime +60s

O -pouco antes dos dígitos não é um "traço de argumento" regular, mas significa "menos que". +então é "mais que".

De man find:

Todas as primárias que aceitam um argumento numérico permitem que o número seja precedido por um sinal de mais (``+'') ou um sinal de menos (``-''). Um sinal de mais precedente significa ``mais que n'', um sinal de menos precedente significa ``menos que n'' e nenhum deles significa ``exatamente n''.

Deve-se notar que paraexatamente n, o tempo é arredondado. Portanto 1(1 dia) não significa 86.400 segundos.

Responder2

find . -type f -mmin +1

Exemplo

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt

Responder3

O segundo -é-mtime -60snãoum delimitador de opção.

-mtimeé uma opção e é seguida por umargumento de opção. O argumento da opção é -60s, e nele -faz parte do próprio argumento da opção,nãoum delimitador de opção. Significa "menos de 60 segundos". Argumentos de opção 60ssignificam +60s"igual a 60 segundos" e "maior que 60 segundos", respectivamente.

O manual do Apple MacOS e o manual do FreeBSD mencionam os prefixos +e -em exatamente um lugar, e esquecem de explicar em qualquer lugar o que são. Isto é o que eles são.

(O manual GNU Info para GNU findtem a mesma omissão, curiosamente. No entanto, finda sintaxe do GNU para times é um pouco diferente da findsintaxe BSD e MacOS.)

Leitura adicional

Responder4

Em sistemas Unix, -mtime costumava ser seguido por +/- seguido por um número seguido por unidades de tempo. [+-]nn[dms]

O Linux usa mtime para dias, mmin para minutos, mas não parece haver uma opção de segundos e não usa um especificador de unidades de tempo. O + ou - ainda se refere a maior ou menor que o tempo, em vez de ser um argumento de opção mencionado acima.

Você poderia usar -mmin 1, mashttps://unix.stackexchange.com/questions/238738/find-files-newer-than-15-seconds-but-older-than-2-secondsdiscute como lidar com segundos em geral.

informação relacionada