私の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
: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 rename
とも同じページをman file-rename
提供します。man prename
私はスクリプトを直接見て、違いを理解しようとしましたが、これは些細なことではありません。 Debian 世界で 3 つの別々の Perl 名前変更スクリプトが必要な理由を説明するボーナスポイントです。
答え1
これがコメントであるべきかどうかはわかりませんが、答えの一部にすぎません。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
。