find + imprime os arquivos com data e hora

2

a seguinte sintaxe de localização imprime os arquivos com mais de 10 dias

find  /var/log/ambari-metrics-collector  -type f -mtime +10 -regex '.*\.log.*[0-9]$' -print
/var/log/ambari-metrics-collector/collector-gc.log-201808130951
/var/log/ambari-metrics-collector/collector-gc.log-201808130403
/var/log/ambari-metrics-collector/gc.log-201808011229
/var/log/ambari-metrics-collector/collector-gc.log-201808011229
/var/log/ambari-metrics-collector/gc.log-201808091332

o que você precisa adicionar à minha sintaxe para imprimir o seguinte exemplo então o registro de data e hora será antes do caminho do arquivo

2018 Aug 28 14:20   /var/log/ambari-metrics-collector/collector-gc.log-201808130951
2018 Aug 28 12:12   /var/log/ambari-metrics-collector/collector-gc.log-201808130403
2018 Aug 28 14:32   /var/log/ambari-metrics-collector/gc.log-201808011229
2018 Aug 28 14:32   /var/log/ambari-metrics-collector/collector-gc.log-201808011229
2018 Aug 28 11:22   /var/log/ambari-metrics-collector/gc.log-201808091332
    
por yael 29.08.2018 / 15:47

1 resposta

7

Com o GNU find , use -printf format em vez de -print

find /var/log/ambari-metrics-collector -type f -mtime +10 -regex '.*\.log.*[0-9]$' -printf '%TY %Tb %Td %TH:%TM %p\n'

% T - é para o tempo de modificação,% C para o tempo de criação ou% A para o tempo de acesso (a segunda letra é o campo de strftime() / date para mostrar).

Tenha em atenção que -mtime +10 encontra ficheiros com mais de 11 dias, e não 10 (cuja idade, arredondada para um número inteiro de dias, é stricktly superior a 10 ).

Observe também que -regex '.*\.log.*[0-9]$' corresponderia a um arquivo foo.login/file.tar.bz2 , por exemplo. Você também pode usar o padrão -name '*.log*[0-9]' , que seria um pouco mais estrito (ainda corresponderia a file.login.tar.bz2 ).

    
por 29.08.2018 / 15:57