Jaka jest magia " - " (myślnik) w parametrach wiersza poleceń?
Przykłady:
-
Utwórz obraz ISO i nagraj go bezpośrednio na płytę CD.
mkisofs -V Photos -r /home/vivek/photos | cdrecord -v dev=/dev/dvdrw -
-
Zmiana do poprzedniego katalogu.
cd -
-
Nasłuchuj na porcie 12345 i przesyłaj do niego dane untar.
nc -l -p 12345 | tar xvzf -
Jaki jest cel kreski i jak jej używać?
5 answers
Jeśli masz na myśli nagie -
Na końcu tar
polecenia, jest to powszechne w wielu poleceniach, które chcą użyć pliku.
Pozwala określić standardowe wejście lub wyjście, a nie rzeczywistą nazwę pliku .
Tak jest w Twoim pierwszym i trzecim przykładzie. Na przykład poleceniecdrecord
pobiera standardowe wejście (strumień obrazu ISO wytwarzany przez mkisofs
) i zapisuje go bezpośrednio do /dev/dvdrw
.
Poleceniem cd
, za każdym razem, gdy zmieniasz katalog, przechowuje katalog, z którego pochodzisz. Jeśli wykonasz cd
ze specjalnym -
"Nazwa katalogu", użyje on tego zapamiętanego katalogu zamiast prawdziwego. Możesz łatwo przełączać się między dwoma katalogami dość szybko za pomocą tego.
Inne polecenia mogą traktować {[0] } jako inną specjalną wartość.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-08 03:15:06
To nie magia. Niektóre polecenia interpretują -
jako użytkownika, który chce odczytywać ze standardowego wejścia lub zapisywać na stdout; powłoka nie ma w tym nic specjalnego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-08 03:08:57
-
oznacza dokładnie to, co każde polecenie chce, aby oznaczało. Istnieje kilka powszechnych konwencji i widziałeś przykłady większości z nich w innych odpowiedziach, ale żadna z nich nie jest w 100% uniwersalna.
Nie ma nic magicznego w -
jeśli chodzi o powłokę (poza tym, że sama powłoka i niektóre jej wbudowane polecenia, takie jak cd
i echo
, używają jej w konwencjonalny sposób). Niektóre postacie, jak \
, '
, oraz "
, są "magiczne", posiadające specjalne znaczenia wszędzie tam, gdzie się pojawiają. Są to "metacharaktery powłokowe". -
to nie tak.
Aby zobaczyć jak dane polecenie używa -
, przeczytaj dokumentację dla tego polecenia .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 18:58:39
Magia jest w konwencji. Przez tysiąclecia ludzie używali' -', aby odróżnić opcje od argumentów, i używali ' - 'w nazwie pliku, aby oznaczać albo stdin lub stdout, odpowiednio. Nie lekceważ mocy konwencji!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-08 03:33:55
Oznacza użycie standardowego strumienia wejściowego programu.
W przypadku cd
oznacza to coś innego: zmianę do poprzedniego katalogu roboczego.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-24 04:36:57