ทำไมมีสองแพ็คเกจที่ให้คำสั่งต่างกันโดยใช้ชื่อเดียวกัน (ถ้าไม่ใช่โดยบังเอิญ)?
นั่นไม่ใช่เรื่องแปลก renameผู้เขียนมักจะเลือกชื่อคำสั่งที่ง่ายพวกเขาคิดว่าดังนั้นหากคนสองคนเขียนคำสั่งที่จะเปลี่ยนชื่อไฟล์ก็มีแนวโน้มที่พวกเขาจะชื่อทั้งมัน นั่นเป็นหนึ่งในเหตุผลที่อยู่เบื้องหลังระบบเดเบียนทางเลือก - ช่วยให้แพคเกจที่มีคำสั่งที่มีชื่อคล้ายกันสามารถอยู่ร่วมกันได้ ตัวอย่างเช่นมีหลายการใช้งาน AWK - mawk, original-awk, gawk(แม้พวกเขาทั้งหมดที่อ้างตัวเองว่าเป็น awk) ด้วยระบบทางเลือกที่คุณสามารถติดตั้งได้ทั้งหมดในเวลาเดียวกันและสะดวกสลับระหว่างการใด ๆ awkของพวกเขาเป็นค่าเริ่มต้น
ในกรณีเฉพาะนี้prenameมาจากซอร์สโค้ด Perl Debian ดูแลแพคเกจเดิมมีrenameเป็น Perl หนึ่งแล้วเปลี่ยนมาใช้ระบบทางเลือกเพื่ออำนวยความสะดวกจากrename util-linuxจากนั้นมีคนเขียน Perl รุ่นที่ปรับปรุงแล้วrenameในโมดูล File-Rename Perlซึ่งเพิ่มเข้ามาเป็นอีกทางเลือกหนึ่ง แต่นั่นไม่ใช่แม้แต่โมดูล Perl สำหรับเปลี่ยนชื่อไฟล์เท่านั้น
มันจะไม่ตรงไปตรงมาหรือเปล่าที่perlแพ็คเกจจะรวมrenameคำสั่ง“ เต็ม” หรือไม่รวมrenameคำสั่งใด ๆเลย? เหตุใดการแยกนี้จึงดูเหมือนไม่เสร็จสิ้นอย่างต่อเนื่องจนถึงอย่างน้อย Ubuntu 17.04
ดูDebian bug # 735134เพื่อดูว่าสถานการณ์นี้วิวัฒนาการอย่างไร ผู้ดูแล Debian มักชอบปล่อยอย่างน้อยหนึ่งตัวเมื่อทำอะไรที่รุนแรงเช่นแทนที่คำสั่งที่ใช้งานได้ด้วยคำสั่งอื่น prenameถูกเก็บไว้รอบ ๆ สำหรับเจสซีและตอนนี้ถูกลบออกสำหรับมือปราบ นอกจากนี้ดูเหมือนว่าrenameจะไม่อยู่ภายใต้ระบบทางเลือกอีกต่อไปเนื่องจากrename.ulไม่เข้ากันเกินไป จะเป็นเพียงrenamefile-rename
เนื่องจากโดยทั่วไปแล้ว Ubuntu จะรับการเปลี่ยนแปลงบรรจุภัณฑ์จาก Debian สิ่งที่เกิดขึ้นกับrenameDebian นั้นจะถูกหยิบขึ้นมาโดย Ubuntu ไม่ช้าก็เร็วใน 18.04 ดูเหมือนว่าจะสายเกินไปสำหรับ 17.10
อะไรคือความแตกต่างระหว่างคำสั่งเหล่านั้น?
โดยพื้นฐานแล้วทั้งprenameและfile-renameเรียกใช้นิพจน์ Perl เพื่อเปลี่ยนชื่อไฟล์ file-renameมีการบำรุงรักษาอย่างแข็งขันและรองรับตัวเลือกเพิ่มเติม renameจากutil-linuxผลงานที่แตกต่างอย่างสิ้นเชิงมีกฎของตนเองสำหรับรูปแบบ
man prenameสำหรับ 17.10ดูเหมือน 17.10 ไม่ในความเป็นจริงรับแทนfile-renameprenameเดียวกัน18.04