เหตุใดจึงมีทางเลือกสั้นและระยะยาวสำหรับตัวเลือกบรรทัดคำสั่ง?


23

คำสั่ง unixoid ส่วนใหญ่มีทางเลือกในระยะสั้นและระยะยาวสำหรับตัวเลือกบรรทัดคำสั่งเช่นls -aและls --allหรือและls -A ls --almost-allทำไมทั้งสองวิธีจึงมีอยู่? หนึ่งสั้นกว่าประเภทอื่น ๆ ง่ายต่อการอ่านและเข้าใจ แต่ทุกครั้งที่ฉันเขียนเชลล์สคริปต์ฉันต้องตัดสินใจว่าฉันต้องการใช้อะไร เป็นที่ทราบกันหรือไม่ว่าทำไมทั้งสองทางเลือกจึงมีอยู่? อันแรกคืออะไรทำไมคนอื่นถึงแนะนำ บน DOS / Windows เช่นมีตัวเลือกหนึ่งตัวอักษรที่คำนึงถึงขนาดตัวพิมพ์

คำตอบ:


24

แต่เดิมมีตัวเลือกอักขระเดียวเท่านั้น บางโปรแกรมใช้ตัวเลือกหลายตัว แต่ก็ยังมีเส้นประเดียว AFAIK คู่ประตัวเลือกหลายตัวมาจากGNU ; พวกเขาได้รับการแนะนำเพราะพวกเขาสามารถอ่านได้และมักจะน่าจดจำมากขึ้น (และคุณสามารถมีมากกว่า 52 คน) ขณะนี้หลายโปรแกรมมีทั้ง: ตัวเลือกสั้น ๆ สำหรับเมื่อคุณพิมพ์บนบรรทัดคำสั่งและจดจำอักขระตัวเลือกแบบยาวสำหรับสคริปต์หรือบนบรรทัดคำสั่งหากคุณจำชื่อตัวเลือกที่ยาวกว่าได้เท่านั้น


15
+1 สำหรับการกล่าวถึงว่าตัวเลือกแบบยาวจะดีกว่าสำหรับสคริปต์เพราะมันช่วยเรื่องเอกสาร
Norman Grey

5
สำหรับ "เพียง 52 ของพวกเขา": ลองls -BartSimpsonIsJustCool(หรือGreatถ้าคุณอยู่บน Solaris.
แอรอน Digulla

1
@AaronDigulla นี่คือไข่อีสเตอร์หรือไม่
user712092

5
@ user712092 ไม่มันเป็นเคล็ดลับ ภายใต้ Linux ทุกอย่างหลังจากนั้นIคืออาร์กิวเมนต์ของ-Iตัวเลือกดังนั้นจะสร้างความแตกต่างได้ก็ต่อเมื่อคุณมีไฟล์ที่เรียกว่าsJustCoolในไดเรกทอรีปัจจุบัน ชิ้น-BartSimpsonส่วนสามารถจัดลำดับใหม่ได้ยกเว้นว่าSจะต้องอยู่หลังt(เรียงตามขนาด) ยังmไม่มีผลเมื่อnหรือoมี ดังนั้นคำสั่งจะเทียบเท่ากับls -BSainopsrและถ้าฉันไม่ได้พลาดอะไรเลยคุณไม่สามารถลบตัวอักษรอื่นเพื่อให้ได้ผลลัพธ์เดียวกันและคุณสามารถเรียงลำดับตัวอักษรเหล่านี้ได้อย่างอิสระ
Gilles 'หยุดความชั่วร้าย'

2
@Gilles: โดยวิธีที่ถูกต้องที่สุดอาจมี 62 ตัวเลือกสั้น ๆ (รวมถึงตัวเลข) ไม่ใช่ 52 พิจารณาgzip -9 filenameตัวอย่างเช่น
Radko Dinev

1

คุณอาจเดาได้ว่ามันเป็นเรื่องของรสนิยม เมื่อพิมพ์บนบรรทัดคำสั่งอาจต้องการตัวเลือกสั้น ๆ โดยเฉพาะอย่างยิ่งในกรณีของตัวเลือกที่ทำงานด้วยกัน (เช่นls -AL) ls --almost-all --dereferenceตัวเลือกที่มีความยาวที่ดีกว่าในการถ่ายทอดความตั้งใจที่จะทำให้คุณไม่จำเป็นต้องปรึกษาหน้าคนเมื่อคุณอ่าน

ตามธรรมชาติเมื่อคุณได้รับประสบการณ์คุณอาจเรียนรู้ว่าตัวเลือกทั้งสอง-Aและทาง-Lลัดนั้นเป็นที่รู้จักกันดีและไม่ต้องการเอกสารประกอบเพิ่มเติม โดยเฉพาะอย่างยิ่งในคำสั่งที่ซับซ้อนที่อาจรวมหลายคำสั่งในรูปแบบที่น่าสนใจกับการประเมินผลการเปลี่ยนเส้นทางและอื่น ๆ ในกรณีนี้คุณอาจต้องการความกระชับมากกว่าเอกสาร


1

จุดประสงค์อื่นที่ฉันเห็นในการมีวิธีการระบุพารามิเตอร์ที่หลากหลาย (สั้นและยาว) คือเมื่อพิมพ์ผู้ใช้บรรทัดคำสั่ง Unix / Linux จะมีคำสั่งสั้นที่สุดเท่าที่จะทำได้ อย่างไรก็ตามสิ่งเหล่านั้นอาจกลายเป็นความลับและหากมีการเขียนสคริปต์โดยใช้ฉบับย่อเหล่านั้นพวกเขาอาจเข้าใจยาก ใช้รุ่นยาวสามารถทำให้คำสั่งเดียวกันอ่านง่ายขึ้นและเข้าใจได้โดยคนที่ไม่ได้กูรูของคำสั่งนี้โดยเฉพาะอย่างยิ่งถ้าคำสั่งนี้เป็นจริงสคริปต์ที่เขียนในประเทศเมื่อเทียบกับคำสั่งที่รู้จักกันดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.