Я нашел эту ссылку о том, как открыть tgz за один шаг .
gzip -dc target.tar.gz | tar xf -
Что означает «-»?
Я нашел эту ссылку о том, как открыть tgz за один шаг .
gzip -dc target.tar.gz | tar xf -
Что означает «-»?
Ответы:
Это общепринятое соглашение, используемое -
в аргументе имени файла для обозначения stdin
или stdout
; tar
следует тому же соглашению. Со страницы руководства:
-f, --file [HOSTNAME:]F
use archive file or device F (default "-", meaning stdin/stdout)
-
для нее значит. Stdin / stdout является наиболее распространенным значением, но есть и другие. Например, для некоторых версий env
это означает «начать с пустой среды».
Другое соглашение заключается в использовании «-» для указания конца флагов и начала имен файлов. Такое поведение встроено в getopt (3) в RedHat 4, по крайней мере. Я не могу найти справочную страницу Red Hat, которая использует «-» для обозначения конца аргументов, кажется, что все они используют «-» для этого. В этом контексте man-страница awk имеет знак «-», поэтому, возможно, только старые команды Unix или Solaris «семейной реликвии» используют «-» в качестве разделителя аргументов - имен файлов.
--
сигнализирует об окончании опций, поэтому все, что приходит после, является операндом. -
это не вариант, поэтому он и все, что приходит потом, является операндом. Это стандартное поведение . Для многих команд, таких как tar
, операнд -
означает стандартный ввод или вывод . На многих оболочках set - -a
эквивалентно set -- -a
, а на некоторых старых оболочках Борна set - -a
была единственная принятая форма, но это исключение со set
встроенной.
--
чтобы отделить параметры от аргументов.
tar xfz target.tar.gz
и для bziptar xfj target.tar.bz2