Що означає «-» як аргумент команди?


9

Я знайшов це посилання про те, як відкрити tgz за один крок .

gzip -dc target.tar.gz | tar xf -

Що означає "-"?


1
Крім того, більшість версій tar зараз підтримують gzip та bzip. Для файлу gzip-ed tar tar xfz target.tar.gzта для bziptar xfj target.tar.bz2
Видалений обліковий запис

Відповіді:


18

Це загальна умова використовувати -в аргументі назви файлів значення stdinабо stdout; tarдотримується тієї ж конвенції. На чоловіковій сторінці:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
Це лише умовність; вам потрібно прочитати сторінку для конкретної команди, щоб побачити, що це -означає для неї. Stdin / stdout - це, безумовно, найпоширеніший зміст, але є й інші. Наприклад, для деяких його версій envозначає "почати з порожнього середовища".
cjm

0

Ще одна умова - використовувати "-" для позначення кінця прапорів та початку назв файлів. Така поведінка вбудована принаймні до getopt (3) на RedHat 4. Я не можу знайти сторінку "Red Hat man", яка використовує "-" для позначення кінця аргументів, вони, схоже, використовують "-" для цього. Сторінка "awk man" має "-" у цьому контексті, тому, можливо, лише старі команди "heirloom" Unix або Solaris використовують '-' як аргументи - роздільник імен файлів.


3
--сигналізує про закінчення параметрів, тому все, що приходить згодом, є операндом. -не є варіантом, тому він і все, що приходить згодом, є операндом. Це стандартна поведінка . Для багатьох команд, наприклад tar, операнд -означає стандартний вхід або вихід . На багатьох снарядах set - -aрівнозначно set -- -a, а на деяких старих оболонках Борна set - -aбула єдиною прийнятою формою, але це виняток із setвбудованою.
Жил "ТАК - перестань бути злим"

Програми Solaris в основному дотримуються стандартної конвенції POSIX --щодо відокремлення параметрів від аргументів.
alanc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.