W przeciwieństwie do ssh, scp używa przełącznika P, aby ustawić port zamiast małych liter p:
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default
Mały przełącznik p jest używany z scp do zachowania czasów i trybów.
Oto fragment strony podręcznika scp ze wszystkimi szczegółami dotyczącymi dwóch przełączników, a także wyjaśnienie, dlaczego dla scp wybrano wielkie litery P:
-P port Określa port, z którym należy się połączyć na zdalnym hoście. Zauważ, że ta opcja jest napisana dużą literą „P”, ponieważ -p jest już zarezerwowane dla zachowania czasów i trybów pliku w rcp (1).
-p Zachowuje czasy modyfikacji, czasy dostępu i tryby z oryginalnego pliku.
Zaktualizuj i odłóż na bok, aby odpowiedzieć na jeden z (mocno pozytywnych) komentarzy :
W odniesieniu do komentarza Abdulla na temat scp
kolejności opcji sugeruje:
scp -P80 -r some_directory -P 80 ...
... przeplata opcje i parametry. getopt(1)
wyraźnie określa, że parametry muszą występować po opcjach i nie mogą być z nimi przeplatane:
Parametry wywoływane przez getopt można podzielić na dwie części: opcje, które modyfikują sposób, w jaki getopt wykona parsowanie (opcje i optstring w SYNOPSIS) oraz parametry, które należy przeanalizować (parametry w SYNOPSIS). Druga część rozpocznie się od pierwszego parametru innego niż opcja, który nie jest argumentem opcji, lub po pierwszym wystąpieniu „-”. Jeśli nie znaleziono opcji „-o” lub „--options” w pierwszej części, pierwszy parametr drugiej części jest używany jako krótki ciąg opcji.
Ponieważ -r
opcja wiersza poleceń nie przyjmuje żadnych dalszych argumentów, some_directory
jest „pierwszym parametrem nie będącym opcją, który nie jest argumentem opcji”. Dlatego, jak wyraźnie zaznaczono na getopt(1)
stronie podręcznika , wszystkie kolejne argumenty wiersza poleceń następujące po nim (tj. -P 80 ...
) Są uważane za nie-opcje (i argumenty bez opcji).
Tak więc w ten sposób getopt(1)
widzi się przykład przedstawiony na końcu opcji i na początku parametrów wyznaczonych przez tekst bing na szaro:
scp -P80 -r some_directory -P 80 ...
Nie ma to nic wspólnego z scp
zachowaniem, a wszystko z tym, jak standardowe aplikacje POSIX analizują opcje wiersza poleceń za pomocą getopt(3)
zestawu funkcji C.
Aby uzyskać więcej informacji na temat zamawiania i przetwarzania wiersza poleceń, przeczytaj stronę getopt(1)
podręcznika, używając:
man 1 getopt