Я знайшов це посилання про те, як відкрити 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 man" має "-" у цьому контексті, тому, можливо, лише старі команди "heirloom" Unix або Solaris використовують '-' як аргументи - роздільник імен файлів.
--сигналізує про закінчення параметрів, тому все, що приходить згодом, є операндом. -не є варіантом, тому він і все, що приходить згодом, є операндом. Це стандартна поведінка . Для багатьох команд, наприклад tar, операнд -означає стандартний вхід або вихід . На багатьох снарядах set - -aрівнозначно set -- -a, а на деяких старих оболонках Борна set - -aбула єдиною прийнятою формою, але це виняток із setвбудованою.
--щодо відокремлення параметрів від аргументів.
tar xfz target.tar.gzта для bziptar xfj target.tar.bz2