異なる「名前変更」コマンドの違いは何ですか?


13

Ubuntu 14.04以降、少なくとも3つのrenameコマンドがあります。

  1. renameutil-linuxパッケージによって提供されます。manrename.ulを参照してください
  2. renameperlパッケージによって提供されます。manprenameを参照してください
  3. renamerenameパッケージによって提供されます。manfile-renameを参照してください

質問:

  • これらのコマンドの違いは何ですか?
  • 同じ名前を使用して異なるコマンドを提供する複数のパッケージがあるのはなぜですか?それは偶然ではないでしょうか?
  • perlパッケージに「フル」renameコマンドを含めるか、renameコマンドをまったく含めないのは、どちらかといえば簡単ではないでしょうか?少なくともUbuntu 17.04までこの一見不完全な分割が持続するのはなぜですか?

この質問はすでにU&Lで尋ねられています(後でわかりました):
すべての名前変更(prename、rename、file-rename)

回答:


8

(偶然ではない場合)同じ名前を使用して異なるコマンドを提供する2つのパッケージがあるのはなぜですか?

それは珍しいことではありません。作成者は通常、考えている最も単純なコマンド名を選択するため、2人がファイルの名前を変更するコマンドを記述した場合、両方とも名前を付ける可能性がありますrename。これがDebian代替システムの背後にある理由の1つです。同じ名前のコマンドを提供するパッケージを共存させ、あるパッケージで別のパッケージを置き換えることができます。-例えば、複数のAWKの実装が存在しmawkoriginal-awkgawk(彼らはすべてのawkとして自分自身を参照してくださいが)。代替システムを使用すると、それらをすべて同時にインストールし、それらのいずれかをデフォルトとして便利に切り替えることができますawk

この特定のケースでprenameは、Perlソースコードから取得されます。DebianパッケージメンテナーはもともとrenamePerl でしたが、その後、renamefrom に対応するために代替システムに切り替えましたutil-linux。そして、誰かがPerlのの改良版を書いたrename中で、ファイル・名前の変更Perlモジュール、別の選択肢として加えました、。しかし、それはファイルの名前を変更するためのPerlモジュールでさえありません。

perlパッケージに「フル」renameコマンドを含めるか、renameコマンドをまったく含めないのは、どちらかといえば簡単ではないでしょうか?少なくともUbuntu 17.04までこの一見不完全な分割が持続するのはなぜですか?

この状況がどのように進化したかについては、Debianバグ#735134をご覧ください。Debianのメンテナーは通常、作業コマンドを別のコマンドに置き換えるなどの抜本的なことを行う場合は、少なくとも1つのリリースを行うことを好みます。prenameジェシーのために保管されていましたが、現在はバスターのために削除されています。さらに、互換性があまりにも低いrenameため、代替システムの下にはもうないようrename.ulです。renameちょうどになりfile-renameます。

Ubuntuは一般にDebianからパッケージの変更をrename取得するため、Debianで起こったことは遅かれ早かれ、おそらく18.04にUbuntuに反映されます。17.10には遅すぎるようです。

これらのコマンドの違いは何ですか?

基本的に、両方prenamefile-rename実行し、Perl式を実行してファイルの名前を変更します。file-rename積極的に維持され、より多くのオプションをサポートしています。まったく異なる作品renameからutil-linux、パターンのための独自のルールがあります。


man prename17.10からは、実際には17.10がのfile-rename代わりにピックアップしたようですprename18.04でも同じです。
-wjandrea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.