В отличие от ssh, scp использует ключ P в верхнем регистре для установки порта вместо p:
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default
Переключатель строчных букв p используется вместе с scp для сохранения времени и режимов.
Вот выдержка из справочной страницы scp со всеми подробностями, касающимися этих двух ключей, а также объяснение того, почему прописная буква P была выбрана для scp:
-P порт Указывает порт для подключения к удаленному хосту. Обратите внимание, что эта опция написана с большой буквы «P», потому что -p уже зарезервирован для сохранения времен и режимов файла в rcp (1).
-p Сохраняет время изменения, время доступа и режимы из исходного файла.
Обновите и оставьте в стороне один из комментариев (с большим количеством голосов) :
Что касается комментария Абдулла об scp
опционном порядке, то, что он предлагает:
scp -P80 -r some_directory -P 80 ...
..., перемежает параметры и параметры. getopt(1)
четко определяет, что параметры должны следовать за опциями, а не перемежаться с ними:
Параметры, с которыми вызывается getopt, можно разделить на две части: параметры, которые изменяют способ синтаксического анализа, выполняемый getopt (параметры и строка выбора в ОПИСАНИИ), и параметры, которые необходимо проанализировать (параметры в ОПИСАНИИ). Вторая часть начинается с первого неопционального параметра, который не является опциональным аргументом, или после первого появления «-». Если в первой части не найдено ни опции '-o', ни '--options', в качестве строки коротких опций используется первый параметр второй части.
Поскольку -r
опция командной строки не принимает никаких дополнительных аргументов, some_directory
это «первый необязательный параметр, который не является аргументом опции». Следовательно, как четко указано в getopt(1)
справочной странице, все последующие аргументы командной строки, которые следуют за ней (т. Е. -P 80 ...
), Считаются не опциями (и не опциями).
Таким образом, по сути, так выглядит getopt(1)
пример, представленный с окончанием параметров и началом параметров, разграниченных последовательным бингом текста серым цветом:
scp -P80 -r some_directory -P 80 ...
Это не имеет ничего общего с scp
поведением и связано с тем, как стандартные приложения POSIX анализируют параметры командной строки, используя getopt(3)
набор функций C.
Для получения более подробной информации о порядке и обработке командной строки, пожалуйста, прочитайте getopt(1)
справочную страницу, используя:
man 1 getopt