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