Jeśli masz na myśli nagość -
na końcu tar
polecenia, jest to powszechne w przypadku wielu poleceń, które chcą użyć pliku.
Pozwala na określenie standardowego wejścia lub wyjścia zamiast rzeczywistego nazwy pliku.
Tak jest w przypadku pierwszego i trzeciego przykładu. Na przykład cdrecord
polecenie pobiera standardowe wejście (strumień obrazu ISO utworzony przez mkisofs
) i zapisuje je bezpośrednio do /dev/dvdrw
.
Za pomocą cd
polecenia za każdym razem, gdy zmieniasz katalog, przechowuje on katalog, z którego przyszedłeś. Jeśli zrobisz cd
ze specjalną -
"nazwą katalogu", użyje ona zapamiętanego katalogu zamiast prawdziwego. Używając tego, możesz łatwo przełączać się między dwoma katalogami dość szybko.
Inne polecenia mogą traktować -
jako inną wartość specjalną.
-
dla gałęzi git, tzn. możesz wrócić do poprzedniej gałęzi za pomocągit checkout -
-
, możesz znaleźć jego wyjaśnienie na stronie podręcznika.To nie jest magia. Niektóre polecenia są interpretowane
-
jako użytkownik, który chce czytać ze standardowego wejścia lub zapisywać na standardowe wyjście; nie ma w tym nic specjalnego w powłoce.źródło
cd -
;bash(1)
uchwytycd -
tak, jakbyś to napisałcd $OLDPWD
.cd
- polecenie wbudowane w powłokę - interpretuje samą myślnik. Żadnej „magii” :-)Przekierowanie z lub do
stdin
lubstdout
.Zobacz: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2
źródło
<
,>
,|
, etc).-
oznacza dokładnie to, co każde polecenie ma oznaczać. Istnieje kilka powszechnych konwencji, a przykłady większości z nich widzieliście w innych odpowiedziach, ale żadna z nich nie jest w 100% uniwersalna.Jeśli
-
chodzi o powłokę, nie ma nic magicznego w postaci (poza samą powłoką i niektórymi jej wbudowanymi poleceniami, takimi jakcd
iecho
, używają jej w konwencjonalny sposób). Niektóre postacie, takie jak\
,'
i"
, są „magiczne” i mają specjalne znaczenie, gdziekolwiek się pojawią. To są „metaznaki powłoki”.-
nie jest taki.Aby zobaczyć, jak działa dane polecenie
-
, przeczytaj dokumentację tego polecenia .źródło
Magia tkwi w konwencji. Od tysiącleci ludzie używali znaku „-” do odróżniania opcji od argumentów i używali „-” w nazwie pliku, co oznaczało odpowiednio stdin lub stdout. Nie lekceważ potęgi konwencji!
źródło
Oznacza to użycie standardowego strumienia wejściowego programu.
W przypadku
cd
oznacza to co innego: przejście do poprzedniego katalogu roboczego.źródło