Como modifico um arquivo sem atualizar o horário da modificação? [duplicado]

2

Às vezes, quero fazer uma pequena edição em um arquivo de texto (por exemplo, corrigir um erro de digitação), mas quero manter sua hora de modificação inalterada. (Motivação: modtime é útil para listar diretórios em ordem cronológica, para dizer quando o conteúdo de um arquivo foi atualizado, etc. Eu não quero que uma edição trivial obliterar essa informação.)

Isto é certamente possível: o Unix permite-me definir manualmente o modtime para qualquer coisa que eu queira (isto define o ctime para o presente, o que é bom para mim). Por exemplo, com touch -t <time> ou com a chamada de sistema utimes(2) . Esta questão é sobre uma maneira simples de editar um arquivo e depois definir a hora da modificação para exatamente o que era antes da edição. Estou interessado principalmente em soluções que são agnósticas para o editor , ou seja, se o emacs tiver um comando save-file-no-update-mtime , isso é interessante, mas não é o que estou procurando.

    
por alexis 23.04.2016 / 14:02

1 resposta

1

Aqui está uma solução bastante simples, baseada em esta resposta à questão relacionada descoberta por @don_crissti. Mas eu estava esperando por algo que não usa um arquivo extra - alguém pode fazer melhor?

touch -r some-file.txt .timestamp 
emacs some-file.txt  # Or whatever
touch -r .timestamp some-file.txt 
rm .timestamp
    
por 23.04.2016 / 14:20

Tags