Como atualizar os vários arquivos sem alterar a data do arquivo?

1

Eu substituí a palavra ' merchant ' por ' capital ' nos arquivos encontrados no diretório atual usando o seguinte comando:

find * -type f -exec sed -i -e 's/merchant/capital/g' {} \;

mas o comando acima irá modificar a data do arquivo também, existe alguma maneira de parar a data de modificação do arquivo?

Obrigado antecipadamente.

    
por naveen 12.05.2015 / 12:27

1 resposta

1

Eu não acho que haja uma solução clara para você.

Mas como uma solução alternativa.

Obter a data de modificação de um arquivo

stat file.txt | grep Modify

Agora Depois de concluir o que você restaurou, a data da modificação anterior

touch  -m -t [[CC]YY]MMDDhhmm[.SS]

ele segue explica o formato acima:

  • CC - especifica os dois primeiros dígitos do ano
  • YY - Especifica os dois últimos dígitos do ano. Se o valor do YY está entre 70 e 99, o valor dos dígitos CC é assumido como
  • Se o valor de YY estiver entre 00 e 37, o valor dos dígitos CC será 20. Não é possível definir a data além 18 de janeiro de 2038.
  • MM - especifica o mês
  • DD - especifica a data
  • hh - Especifica a hora
  • mm - especifica o minuto
  • SS - especifica os segundos

Por exemplo: alterando data de modificação de um arquivo meu chamado url.txt

stat url.txt | grep Modify

saída

Modify: 2015-05-04 09:42:28.148281881 +0300

altere a modificação para 04/05/2016 20:05:04

touch -m -t 201605042005.04 url.txt 

Certifique-se de que funciona

stat url.txt | grep Modify

saída

Modify: 2016-05-04 20:05:04.000000000 +0300
    
por Maythux 12.05.2015 / 13:57