Мне было любопытно если chmod 000 /
работал бы.
Ну, безупречно. Несколько минут спустя я искал спасение CD.
Это - общая конвенция использовать -
в аргументе имени файла для значения stdin
или stdout
; tar
следует той же конвенции. Из страницы справочника:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
Другая конвенция состоит в том, чтобы использовать '-' для указания на конец флагов, и начало имен файлов. То поведение встроено к getopt (3) на RedHat 4, по крайней мере. Я не могу найти страницу справочника Red Hat, которая использует '-' для указания на конец аргументов, они все, кажется, используют '-', чтобы сделать это. awk страница справочника имеет '-' в том контексте, поэтому возможно, только старый Unix "семейной реликвии" или команды Соляриса используют '-' в качестве аргументы - разделитель имен файлов.
--
сигнализирует о конце опций, таким образом, все, что прибывает впоследствии, является операндом. -
не опция, таким образом, это и все, что прибывает впоследствии, является операнд. Это - стандартное поведение. Для многих команд, такой как tar
, операнд -
ввод или вывод стандарта средств. На многих оболочках, set - -a
эквивалентно set -- -a
, и на некоторых старых Оболочках Bourne set - -a
была единственная принятая форма, но это исключение с set
встроенный.
– Gilles 'SO- stop being evil'
17.03.2011, 00:37
--
разделить опции от аргументов.
– alanc
30.07.2011, 10:35
-
средства для него. Stdin/stdout является безусловно наиболее распространенным значением, но существуют другие. Например, к некоторым версиямenv
это означает, "запускаются с пустой среды". – cjm 17.03.2011, 01:05