私のDebianシステム(まあ、私のLMDEシステムですが、十分に近いです)には、少なくとも3つの異なるrename
があります。 プログラム:
-
/usr/local/bin/rename
:これはTomChristiansenによって書かれたPerlスクリプトです。奇妙なことに、どのパッケージがインストールされているのかわからないようです:$ dpkg -S /usr/local/bin/rename dpkg-query: no path found matching pattern /usr/local/bin/rename
-
/usr/bin/prename
:Robin Barkerによって書かれた別のperlスクリプト、これはperl
の一部です パッケージ:$ dpkg -S /usr/bin/prename perl: /usr/bin/prename
-
/usr/bin/file-rename
:さらに別のPerlスクリプト、明確な著者情報はありませんが、Larry(おそらくWall)とRobin(おそらくBarker)の両方が言及されています。これはrename
によってインストールされます パッケージであり、/usr/bin/rename
にもシンボリックリンクされています :$ dpkg -S /usr/bin/file-rename rename: /usr/bin/file-rename
rename.ul
もあります util-linux
から しかし、今はそれを無視しましょう。これらの3つのPerlスクリプトの違いは何ですか?それらはすべて同じmanページを持っているようです。man rename
、man file-rename
およびman prename
すべて同じページを表示します。
スクリプト自体を調べて違いを理解しようとすることもできますが、それは簡単なことではありません。誰かが、他の人にはない機能を知ってくれることを願っています。 Debianの世界で3つの別々のPerl名前変更スクリプトが必要な理由を説明するためのボーナスポイント。
承認された回答:
これがコメントであるかどうかはわかりませんが、それは部分的な答えにすぎません— Bug#735134:perl:rename(1)は古くからあります。
混乱の種のように見えるものがあります。具体的には:
要約すると、何年もの間、perlパッケージはperlに実装されたスタンドアロンユーティリティである/ usr / bin/renameを提供してきました。問題は、
perlパッケージからユーティリティを提供したくないということです。
これはdebian/内でローカルに追加されており、保守されていないためです。
維持されているバージョンは、別のパッケージlibfile-rename-perlとして入手できます。
libfile-rename-perl
上記はrename
に置き換えられました :
$ apt-cache show rename | head
Package: rename
Version: 0.20-3
Installed-Size: 69
Maintainer: Debian Perl Group <[email protected]>
Architecture: all
Replaces: libfile-rename-perl
Provides: libfile-rename-perl
Depends: perl
Conflicts: libfile-rename-perl
Description-en: Perl extension for renaming multiple files
したがって、Perlには独自のrename
があります これはDebianによって維持されておらず、/usr/bin/prename
を提供します 。 Debian開発者はrename
を維持しています パッケージ(以前はlibfile-rename-perl
と呼ばれていたようです )これは、/usr/bin/rename
を提供するパッケージです。 :/etc/alternatives/rename
へのシンボリックリンク これ自体が/usr/bin/file-rename
へのシンボリックリンクです。 スクリプト。
Tom Christiansenのスクリプトは、PerlのUnicode::Tussle
にバンドルされています。 モジュール。あなたはおそらくそれをインストールしました、そしてそれは/usr/local/bin/rename
を提供したものです 。