На відміну від ssh, scp використовує верхній регістр P, щоб встановити порт замість малого p:
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default
Перемикач нижнього регістру використовується з scp для збереження часу та режимів.
Ось уривок із довідкової сторінки scp із усіма подробицями, що стосуються двох комутаторів, а також пояснення того, чому для scp було обрано верхній регістр P:
-P порт Вказує порт для підключення на віддаленому хості. Зауважте, що цей параметр записується з великої літери "P", оскільки -p вже зарезервований для збереження часу та режимів файлу в rcp (1).
-p Зберігає час модифікації, час доступу та режими з вихідного файлу.
Оновіть та відхилитесь, щоб вирішити один із коментарів :
Що стосується коментаря Абдулла щодо scp
замовлення опціону, він пропонує:
scp -P80 -r some_directory -P 80 ...
..., перетинає параметри та параметри. getopt(1)
чітко визначає, що параметри повинні надходити після опцій, а не перемежуватися з ними:
Викликані параметри getopt можна розділити на дві частини: параметри, які змінюють спосіб getopt, будуть робити аналіз (параметри та optstring в SYNOPSIS), а параметри, які підлягають розбору (параметри в SYNOPSIS). Друга частина розпочнеться з першого параметра, який не є опцією, який не є аргументом опції, або після першого появи "-". Якщо параметр '-o' або '--options' не знайдено в першій частині, перший параметр другої частини використовується як рядок коротких параметрів.
Оскільки параметр -r
командного рядка не бере ніяких додаткових аргументів, some_directory
це "перший параметр, що не є параметром, який не є аргументом параметра". Тому, як чітко прописано на getopt(1)
сторінці "man", всі наступні аргументи командного рядка, які слідують за нею (тобто -P 80 ...
), вважаються такими, що не є параметрами (та необов'язковими аргументами).
Таким чином, насправді це getopt(1)
бачить приклад, представлений із закінченням параметрів та початком параметрів, розмежованих шляхом введення тексту в біг сірим кольором:
scp -P80 -r some_directory -P 80 ...
Це не має нічого спільного з scp
поведінкою, і все, що стосується того, як стандартні програми POSIX розбирають параметри командного рядка за допомогою getopt(3)
набору функцій C.
Для отримання більш детальної інформації про замовлення та обробку командного рядка, будь ласка, прочитайте сторінку, getopt(1)
використовуючи:
man 1 getopt