Intereting Posts
Неожиданное поведение файлового дескриптора и / или потоков ввода-вывода после запуска sqlcmd с ключом -i (чтение sql из файла) в ksh создает бесконечный цикл Экранная команда fedora 20 автоматически завершается Сценарий Bash необходимо запускать каждую секунду Почему sh отображает ошибку, если bash не работает? Iptables разрешить входящий FTP Насколько обновлен и уместен «Проект документации Linux»? Могу ли я сделать ; быть более совершенным и не убивать? Почему 64-разрядный Ubuntu работает медленнее? ./configure: показать все отсутствующие пакеты одновременно В чем разница между «bs», «count» и «seek» в команде dd? Grep строка из файла подстроки и регулярные выражения Использование egrep для поиска совпадений в файле при выводе конвейера из команды cat Соавтор ли передает какую-либо информацию об источнике? systemd apt прикреплен к -1 и установлен при обновлении с Debian 8 до Debian 9

Как изменить файл без обновления времени модификации?

Иногда я хочу сделать небольшое редактирование текстового файла (например, исправить опечатку), но я хочу сохранить его время изменения без изменений. (Мотивация: modtime полезен для перечисления каталогов в хронологическом порядке, для того, чтобы сообщать, когда контент файла был последним по существу обновлен и т. Д. Я не хочу, чтобы тривиальное редактирование уничтожало эту информацию.)

Это, безусловно, возможно: Unix позволяет мне вручную устанавливать modtime на все, что я хочу (это устанавливает время ctime в настоящее время, что хорошо для меня). Например, с touch -t <time> или с системным вызовом utimes(2) . Этот вопрос касается простого способа отредактировать файл, а затем установить время модификации именно так, как было до редактирования. Меня в основном интересуют решения, которые являются редакторами-агностиками, т. save-file-no-update-mtime Если emacs имеет команду save-file-no-update-mtime , это интересно, но не то, что я ищу.

Вот довольно простое решение, основанное на этом ответе на связанный с ним вопрос, обнаруженный @don_crissti. Но я надеялся на то, что не использует лишний файл – может ли кто-нибудь сделать лучше?

 touch -r some-file.txt .timestamp emacs some-file.txt # Or whatever touch -r .timestamp some-file.txt rm .timestamp