Argumento inválido ao executar o comando 'find' com -exec e -mtime

1

Mensagem de erro bastante estranha surgiu no Centos.

Eu tentei executar este comando:

find /tmp/something -type f -mtime +2h -exec cp '{}' /tmp/target \;

E o erro que eu tenho:

find: invalid argument '-exec' to '-mtime'

O 'encontro' pode ser diferente em outras distribuições?

    
por t.fazakas 19.05.2015 / 13:17

2 respostas

4

-mtime é usado por dias, se você precisar de 2 horas, verifique isso:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;

mmin especifica os minutos, então -mmin +120 irá filtrá-los há mais de 120 minutos (2 horas). Do manual:

-mtime n

File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times.

-mmin n

File's data was last modified n minutes ago.

    
por 19.05.2015 / 14:25
0

A implementação de find no MacOS é um pouco diferente da disponível no Linux. Eu acredito que você tenha o erro acima em um sistema Linux.

No Linux, mtime aceita apenas + - e um número. O número é o número de dias.

Para o que você deseja fazer acima, use mmin

-mmin n
      File’s data was last modified n minutes ago.

Este comando deve funcionar no Linux:

find /tmp/something -type f -mmin +120 -exec cp '{}' /tmp/target \;
    
por 19.05.2015 / 14:28

Tags