Apa perbedaan antara perintah "ganti nama" yang berbeda?


13

Sejak Ubuntu 14.04 setidaknya ada tiga renameperintah:

  1. renamedisediakan oleh util-linuxpaket, lihat man rename.ul
  2. renamedisediakan oleh perlpaket, lihat nama pria
  3. renamedisediakan oleh renamepaket, lihat man-rename file

Pertanyaan:

  • Apa sebenarnya perbedaan antara perintah-perintah itu?
  • Kenapa ada beberapa paket yang memberikan perintah berbeda menggunakan nama yang sama - saya kira itu bukan kecelakaan, atau bukan?
  • Tidakkah akan lebih mudah bagi perlpaket untuk memasukkan perintah "penuh" renameatau tidak menyertakan renameperintah sama sekali? Mengapa perpecahan yang tampaknya tidak lengkap ini dipertahankan hingga setidaknya Ubuntu 17.04?

Pertanyaan ini telah ditanyakan pada U&L (seperti yang saya ketahui kemudian):
Ada apa dengan semua nama: prename, rename, file-rename?

Jawaban:


8

Kenapa ada dua paket yang memberikan perintah berbeda menggunakan nama yang sama (jika tidak secara tidak sengaja)?

Itu tidak biasa. Penulis biasanya memilih nama perintah paling sederhana yang mereka pikirkan, jadi jika dua orang menulis perintah untuk mengganti nama file, kemungkinan mereka berdua akan menamainya rename. Itulah salah satu alasan di balik sistem Alternatif Debian - ini memungkinkan paket yang menyediakan perintah dengan nama yang sama untuk hidup berdampingan, dan untuk satu paket untuk menggantikan yang lain. Sebagai contoh, ada beberapa implementasi AWK - mawk, original-awk, gawk(meskipun mereka semua menyebut diri mereka sebagai awk). Dengan sistem alternatif, Anda dapat menginstal semuanya sekaligus, dan dengan mudah beralih di antara mereka sebagai default awk.

Dalam kasus khusus ini, prenameberasal dari kode sumber Perl. Pengelola paket Debian awalnya renameadalah Perl, kemudian beralih ke sistem alternatif, untuk mengakomodasi renamedari util-linux. Kemudian seseorang menulis versi yang lebih baik dari Perl renamedi modul File-Rename Perl , yang kemudian ditambahkan sebagai alternatif lain. Tapi itu bahkan bukan satu-satunya modul Perl untuk mengganti nama file.

Tidakkah akan lebih mudah bagi perlpaket untuk memasukkan perintah "penuh" renameatau tidak menyertakan renameperintah sama sekali? Mengapa perpecahan yang tampaknya tidak lengkap ini dipertahankan hingga setidaknya Ubuntu 17.04?

Lihat Bug Debian # 735134 untuk mengetahui bagaimana situasi ini berkembang. Pemelihara Debian umumnya lebih suka pergi setidaknya satu rilis ketika melakukan sesuatu yang drastis, seperti mengganti perintah kerja dengan yang lain. prenamedisimpan di sekitar untuk jessie, dan sekarang telah dihapus untuk pengendara. Selain itu, sepertinya renametidak akan lagi berada di bawah sistem alternatif, karena rename.ulterlalu tidak kompatibel. renameakan adil file-rename.

Karena Ubuntu umumnya mengambil perubahan kemasan dari Debian, apa yang terjadi renamedi Debian akan diambil oleh Ubuntu cepat atau lambat, mungkin di 18,04. Tampaknya sudah terlambat untuk 17,10.

Apa sebenarnya perbedaan antara perintah-perintah itu?

Pada dasarnya, keduanya prenamedan file-renamejalankan ekspresi Perl untuk mengganti nama file. file-renamehanya dipelihara secara aktif dan mendukung lebih banyak opsi. renamedari util-linuxkarya yang sepenuhnya berbeda, memiliki aturan sendiri untuk pola.


Dari man prenameuntuk 17,10 , sepertinya 17,10 memang mengambil file-renamealih-alih prename. Sama untuk 18,04 .
wjandrea
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.