Как создать пустой файл?
По-классике touch filename.
touch filename.
Однако, такое использование не целевое1 для этой программы.
В Программном окружении Unix увидел такой вот простой пример создания пустого файла:
$ >filename
Но есть нюанс.
Приведенный выше способ нормально работает в sh, и dash. А вот в zsh -
каретка переводится на новую строку и ждет ввода. Потыкавшись, я понял - что терминал переходит в режим ожидания ввода, а потом всё введенное сохраняет в файл.
% >junk
asdf
qwer^D
% cat junk
asdf
qwer
%
Почему?
Об этом есть целый пункт в рукодстве Зиша.
Кратко:
Если есть оператор перенаправления, но нет команды, оболочка берет её из NULLCMD.
Если там нет ничего, то Зиш использует cat. А cat вызванный без аргументов, будет передавать дальше вывод с stdin, т.е. ввод пользователя в терминал.
Поэтому, для Зиш надо указывать перенаправление ввода из ничего. И в Зише есть свой оператор для ничего - :.
С ним команда должна быть такой:
% : >filename
-
Задача этой утилитки - просто изменить время редактирования файла на текущее. Чтобы, например, спровоцировать make-задачи ↩