Как обновить несколько файлов без изменения даты файла?
Я заменил слово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