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