เหตุใดแฟล็ก -r ที่เรียกซ้ำจะซ้ำในบางรายการและต่ำกว่าในแฟล็กอื่น?


8

บางคำสั่งใช้ตัวพิมพ์เล็กrสำหรับแฟล็กวนซ้ำในขณะที่คำสั่งอื่นใช้อักษรตัวRใหญ่

cp -r foo/ bar/

chmod -R 777 foobar/

มีเหตุผลสำหรับสิ่งนี้หรือไม่?

คำตอบ:


8

cp ยอมรับทั้งจริง

จากcp --help:

  -R, -r, --recursive          copy directories recursively

สำหรับความสอดคล้องมากที่สุดคำสั่งเชลล์ใช้-Rเป็นrecursivelsธงอาจจะเป็นเพราะพวกเขาเลียนแบบพฤติกรรมของ

จากls --help:

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively

1
นอกจากนี้ยังchmod -rใช้เพื่อหมายถึงสิ่งอื่นนอกเหนือจากการเรียกซ้ำ!
Darth Android

3

ฉันไม่แน่ใจว่ามีเหตุผลเฉพาะใด ๆ ต่อความไม่ลงรอยกันนอกเหนือจากที่โปรแกรมเมอร์สามารถเลือกใช้สิ่งที่พวกเขาต้องการธง

ฉันไม่คิดว่าจะมีรูปแบบมาตรฐานใด ๆ ดังนั้นจึงยากที่จะคาดหวังให้ทุกคนติดตามความเหมาะสม


7
เหตุผลน่าจะเป็นประวัติศาสตร์ ในโลก Unix ที่ใหญ่กว่าซึ่งย้อนกลับไปถึงยุค 70 สวิตช์แบบเรียกซ้ำนั้นไม่ได้อยู่ที่นั่นเสมอไปและคำสั่งบางคำก็ได้ใช้ -r เป็นสวิตช์แล้ว เนื่องจากคำสั่งมักใช้ในสคริปต์จึงมีความเฉื่อยมากมายที่เกี่ยวข้องกับความเข้ากันได้แบบย้อนหลังดังนั้นสิ่งเหล่านี้จึงไม่มีการเปลี่ยนแปลงโดยทั่วไปคุณสามารถเพิ่มตัวเลือกในโปรแกรมได้ แต่จะเป็นนักพัฒนาที่พยายามเปลี่ยนการทำงานที่ยาวนาน
สเตฟานี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.