私のDebianシステム(まあ、私のLMDEシステムですが、十分に近い)には、少なくとも3つの異なるrename
プログラムがあります。
/usr/local/bin/rename
:これは、Tom Christiansenによって作成されたPerlスクリプトです。奇妙なことに、それをインストールしたパッケージを見つけることができないようです。
$ dpkg -S /usr/local/bin/rename
dpkg-query: no path found matching pattern /usr/local/bin/rename
/usr/bin/prename
:ロビンバーカーによって書かれた別の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開発者はlibfile-rename-Perl
を提供するパッケージである rename
パッケージ(以前は/usr/bin/rename
と呼ばれていた)を維持しています:/etc/alternatives/rename
へのシンボリックリンクそれ自体は/usr/bin/file-rename
スクリプトへのシンボリックリンクです。
Tom Christiansenのスクリプトは、PerlのUnicode::Tussle
モジュールにバンドルされています。あなたはおそらくそれをインストールし、それが/usr/local/bin/rename
を提供したものです。