Я нашел эту ссылку о том, как открыть 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