私の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を提供したものです 。