Конвертировать файл в UTF-8 и сохранить метку времени изменения - PullRequest
0 голосов
/ 15 октября 2018

Преобразование файлов (в данном случае ISO-8859-1) в UTF-8 довольно просто в Linux.Использовали:

  • find . -name "*.txt" -exec iconv -f ISO-8859-1 -t UTF-8 {} -o {}.utf8 \;
  • vim "+set nomore" "+bufdo set fileencoding=utf8 | w" "+q" $(find . -type f)

Проблема заключается в том, что метка времени изменения естественным образом будет изменена на время конвертации.Есть ли какой-нибудь чистый или даже грязный способ сохранить первоначальное время модификации?

Редактировать: Кажется, что для этого нет простого флага или опции.Модификация метаданных - это в целом изменение, направленное против файла и влияющее на штамп модификации файла ... хотя преобразование кодировки немного в серой области.Как бы то ни было, продвигаясь вперед по сценарию, как указано в jjacobi

1 Ответ

0 голосов
/ 15 октября 2018

Один простой способ:


Сохранить старую метку времени изменения в переменной

last_modif_ts=$(stat [FILENAME] --printf=%Y)

Выполнить необходимые изменения в файле.

Измените метку времени последнего изменения с помощью сенсорной команды

touch -m -t $last_modif_ts [FILENAME]

См. Команду сенсорной команды, если вы хотите изменить время последнего доступа или создания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...