ซึ่งแตกต่างจาก ssh scp ใช้สวิตช์ตัวพิมพ์ใหญ่เพื่อตั้งค่าพอร์ตแทนตัวพิมพ์เล็ก p:
scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default
สวิตช์ p ตัวพิมพ์เล็กใช้กับ scp เพื่อเก็บรักษาเวลาและโหมด
นี่คือข้อความที่ตัดตอนมาจากหน้า man ของ scp พร้อมรายละเอียดทั้งหมดเกี่ยวกับสวิตช์สองตัวรวมทั้งคำอธิบายว่าทำไมตัวเลือก P ตัวพิมพ์ใหญ่จึงเลือกใช้สำหรับ scp:
-P พอร์ตระบุพอร์ตที่จะเชื่อมต่อกับบนโฮสต์ระยะไกล โปรดทราบว่าตัวเลือกนี้เขียนด้วยตัวพิมพ์ใหญ่ 'P' เนื่องจาก -p ถูกสงวนไว้สำหรับการรักษาเวลาและโหมดของไฟล์ใน rcp (1) แล้ว
-p รักษาเวลาการแก้ไขเวลาการเข้าถึงและโหมดจากไฟล์ต้นฉบับ
อัปเดตและหลีกเลี่ยงเพื่อแสดงความคิดเห็นอย่างใดอย่างหนึ่ง (upvoted) :
เกี่ยวกับความคิดเห็นของ Abdull เกี่ยวกับscp
คำสั่งออปชันสิ่งที่เขาแนะนำ
scp -P80 -r some_directory -P 80 ...
... , ตัวเลือกและพารามิเตอร์ getopt(1)
กำหนดพารามิเตอร์ที่ชัดเจนว่าจะต้องมาหลังจากตัวเลือกและไม่ต้องสลับกับพวกเขา:
พารามิเตอร์ getopt ถูกเรียกด้วยสามารถแบ่งออกเป็นสองส่วน: ตัวเลือกที่ปรับเปลี่ยนวิธีที่ getopt จะทำการแยกวิเคราะห์ (ตัวเลือกและ optstring ใน SYNOPSIS) และพารามิเตอร์ที่จะแยกวิเคราะห์ (พารามิเตอร์ใน SYNOPSIS) ส่วนที่สองจะเริ่มต้นที่พารามิเตอร์ที่ไม่ใช่ตัวเลือกแรกที่ไม่ใช่อาร์กิวเมนต์ตัวเลือกหรือหลังจากการเกิดขึ้นครั้งแรกของ '-' หากไม่พบตัวเลือก '-o' หรือ '--options' ในส่วนแรกพารามิเตอร์แรกของส่วนที่สองจะถูกใช้เป็นสตริงตัวเลือกแบบย่อ
เนื่องจาก-r
ตัวเลือกบรรทัดคำสั่งไม่มีข้อโต้แย้งเพิ่มเติมsome_directory
คือ "พารามิเตอร์ที่ไม่ใช่ตัวเลือกแรกที่ไม่ใช่อาร์กิวเมนต์ตัวเลือก" ดังนั้นตามที่สะกดอย่างชัดเจนในgetopt(1)
man page อาร์กิวเมนต์บรรทัดคำสั่งที่ประสบความสำเร็จทั้งหมดที่ตามมา (เช่น-P 80 ...
) จะถือว่าไม่ใช่ตัวเลือก (และอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือก)
ดังนั้นในผลนี่คือวิธีgetopt(1)
ดูตัวอย่างที่นำเสนอในตอนท้ายของตัวเลือกและจุดเริ่มต้นของพารามิเตอร์ที่แบ่งเขตโดยการประสบความสำเร็จ bing ข้อความในสีเทา:
scp -P80 -r some_directory -P 80 ...
สิ่งนี้ไม่เกี่ยวกับscp
พฤติกรรมและทุกสิ่งที่เกี่ยวข้องกับวิธีการที่โปรแกรมมาตรฐาน POSIX แยกวิเคราะห์ตัวเลือกบรรทัดคำสั่งโดยใช้getopt(3)
ชุดฟังก์ชั่น C
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสั่งและประมวลผลบรรทัดคำสั่งโปรดอ่านgetopt(1)
manpage โดยใช้:
man 1 getopt