Зачем трогать - не возвращает никаких ошибок и еще не создает файл -? - PullRequest
1 голос
/ 21 марта 2020

Я хотел создать файл с именем «-» с помощью команды touch.

touch -

Я ожидал ошибки или создания файла, однако ошибки и создания файла не было.

Также, как я могу создать файл с именем "-". Это вообще возможно?

1 Ответ

3 голосов
/ 21 марта 2020

Как описано в man touch:

Строка аргумента FILE - - обрабатывается специально и вызывает прикосновение, чтобы изменить время файла, связанного со стандартным выводом.

Чтобы создать файл с таким именем, используйте более длинный путь, например:

touch ./-

Чтобы увидеть разницу, попробуйте

( echo a ; sleep 2; ) > file ; date ; stat file

против

( echo a ; sleep 2; touch - ) > file ; date ; stat file

В первом случае время модификации будет за 2 секунды до фактического времени. Во втором случае он будет почти идентичен ему.

...