Pokud myslíte nahého -
na konci tar
příkaz, to je běžné u mnoha příkazů, které chtějí použít soubor.
Umožňuje vám specifikovat standardní vstup nebo výstup spíše než skutečný název souboru.
To je případ vašeho prvního a třetího příkladu. Například cdrecord
příkaz přebírá standardní vstup (stream obrazu ISO produkovaný mkisofs
) a zapsat jej přímo do /dev/dvdrw
.
Pomocí cd
příkaz, pokaždé, když změníte adresář, uloží adresář, ze kterého jste přišli. Pokud uděláte cd
se speciálním -
"název adresáře", používá tento zapamatovaný adresář místo skutečného. Pomocí toho můžete snadno poměrně rychle přepínat mezi dvěma adresáři.
Jiné příkazy mohou zpracovávat -
jako jiný zvláštní hodnotu.
Není to magie. Některé příkazy interpretují -
jako uživatel, který chce číst ze stdin nebo zapisovat do stdout; pro shell na tom není nic zvláštního.
-
znamená přesně to, co každý příkaz chce, aby znamenal. Existuje několik běžných konvencí a příklady většiny z nich jste viděli v jiných odpovědích, ale žádná z nich není 100% univerzální.
Na -
není nic magického znak, pokud jde o shell (kromě samotného shellu a některých jeho vestavěných příkazů jako cd
a echo
, použijte jej konvenčním způsobem). Některé znaky, například \
, '
a "
, jsou „magické“, které mají zvláštní významy, ať se objeví kdekoli. Jedná se o „skořápkové metaznaky“. -
není takový.
Chcete-li vidět, jak daný příkaz používá -
, přečtěte si dokumentaci k tomuto příkazu .