ทำไมมีสองแพ็คเกจที่ให้คำสั่งต่างกันโดยใช้ชื่อเดียวกัน (ถ้าไม่ใช่โดยบังเอิญ)?
นั่นไม่ใช่เรื่องแปลก 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
ไม่เข้ากันเกินไป จะเป็นเพียงrename
file-rename
เนื่องจากโดยทั่วไปแล้ว Ubuntu จะรับการเปลี่ยนแปลงบรรจุภัณฑ์จาก Debian สิ่งที่เกิดขึ้นกับrename
Debian นั้นจะถูกหยิบขึ้นมาโดย Ubuntu ไม่ช้าก็เร็วใน 18.04 ดูเหมือนว่าจะสายเกินไปสำหรับ 17.10
อะไรคือความแตกต่างระหว่างคำสั่งเหล่านั้น?
โดยพื้นฐานแล้วทั้งprename
และfile-rename
เรียกใช้นิพจน์ Perl เพื่อเปลี่ยนชื่อไฟล์ file-rename
มีการบำรุงรักษาอย่างแข็งขันและรองรับตัวเลือกเพิ่มเติม rename
จากutil-linux
ผลงานที่แตกต่างอย่างสิ้นเชิงมีกฎของตนเองสำหรับรูปแบบ
man prename
สำหรับ 17.10ดูเหมือน 17.10 ไม่ในความเป็นจริงรับแทนfile-rename
prename
เดียวกัน18.04