Мне известно, что touch
команда используется для обновления даты последней модификации файла. Он также используется для создания нового файла, если запрошенный файл не существует в файловой системе.
Так как touch (как следует из названия) должен просто обновить дату последнего мода, почему он также пытается создать новый файл?
Это просто проверка, написанная в коде касания, или это что-то еще, что вызывает создание файла?
>/forcefsck
или printf '' >>/forcefsck
(последняя сохранит любое существующее содержимое). То, что вы описываете, - это способ использовать утилиту, которая работает определенным образом, но это не имеет никакого отношения к тому, почему она написана так.
touch
скорее о дизайне , чем о том, как он работает, я думаю, что он touch
нарушает принцип единой ответственности с побочным эффектом создания файла. Следовательно, «почему» просто связано с ранним выбором дизайна, который застрял из-за популярности и распространенности / простоты использования.
touch /forcefsck
для создания пустой файл,/forcefsck
который вызывается для проверки файловых систем на наличие ошибок при следующей перезагрузке. Сам файл не должен содержать ничего, он просто должен существовать. Безtouch
этого мне нужно было бы использоватьvi
илиnano
сохранить пустой файл. Гораздо быстрее в использованииtouch
.