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

Я заменил словоmerchantкcapital'в файлах, найденных в текущем каталоге, используя следующую команду:

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

но приведенная выше команда также изменит дату файла, есть ли способ остановить дату изменения файла?

Заранее спасибо.

1 ответ

Я не думаю, что есть четкое решение для вас.

Но как обходное решение.

Получить дату изменения файла

stat file.txt | grep Modify

Теперь после завершения того, что вы сделали, восстановите предыдущую дату модификации

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

он следующее объясняет вышеуказанный формат:

  • CC - указывает первые две цифры года
  • YY - указывает две последние цифры года. Если значение YY находится между 70 и 99, значение цифр CC предполагается равным
  • Если значение YY находится между 00 и 37, значение цифр CC предполагается равным 20. Невозможно установить дату после 18 января 2038 года.
  • MM - указывает месяц
  • DD - указывает дату
  • чч - указывает час
  • мм - указывает минуты
  • SS - определяет секунды

Например: изменить дату модификации моего файла с именем url.txt

stat url.txt | grep Modify

выход

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

изменить модификацию на 05.05.2016 20:05:04

touch -m -t 201605042005.04 url.txt 

Убедитесь, что работает

stat url.txt | grep Modify

выход

Modify: 2016-05-04 20:05:04.000000000 +0300
Другие вопросы по тегам