すべての名前変更:prename、rename、file-renameとは何ですか?


24

私の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パッケージによってインストールされ、symlinkedにもあります/usr/bin/rename

    $ dpkg -S /usr/bin/file-rename
    rename: /usr/bin/file-rename
    

私も持っrename.ulutil-linuxいますが、今のところそれを無視しましょう。これら3つのPerlスクリプトの違いは何ですか?それらはすべて同じmanページを持っているようman renameman file-renameman prenameすべて同じページを提供してくれます。

スクリプト自体を調べて違いを理解しようとすることもできますが、それは簡単なことではありません。Debianの世界が3つの別個のPerl名前変更スクリプトを必要とする理由を説明するためのボーナスポイント。


それよりも悪いです!RHELは、util-linux-ngパッケージの一部として完全に異なるバイナリを出荷します。%ファイル=リネームは/ usr / binに/リネーム:ELF 64ビットLSB実行、x86-64で、バージョン1(SYSV)、...
thrig

@thrig実際に質問に答えていなかったので、答えをコメントに変換しました(これらのスクリプトの違いは何ですか、なぜ多くのperlバージョンがあるのですか)。あなたは話をしているrenameからutil-linuxであるrename.ulDebianの上やrenameRedHatのシステム上で。私は私の質問の最後から2番目の段落でそれを言及します。
テルドン

update-alternatives --display renameあなたに何を見せますか?ポストインストールされた代替の一部であるかどうか疑問に思います。
ジェフシャラー

@JeffSchallerいいえ、Unicode :: Tussleから来ています。その著者(tchrist)はSEで活動しており、チャットで説明してくれました。
テルドン

4
関連。レコードについては、名前を記載した名前変更スクリプトは、適切なパス名の代わりにsymlinkターゲットを書き換える、パイプからファイル名リストを読み込む、リスト内のnullで終わるパス名などの便利なオプションをサポートしています。通常」-v-iオプション。それは、その使用方法のメッセージ外の適切な文書なしに古い、古い、古いスクリプトだが、それはのための標準的な働き者だエン一斉ファイル名を書き換えます。それは、どこに行っても常に必要な2つまたは3つのスクリプトの1つです。
tchrist

回答:


16

これがコメントであるかどうかはわかりませんが、部分的な答えにすぎません-

http://lists.alioth.debian.org/pipermail/perl-maintainers/2014-February/004113.html

混乱の種と思われるものを持っています。具体的には:

要約すると、perlパッケージは長年にわたり、perlに実装されたstanaloneユーティリティである/ 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 <pkg-perl-maintainers@lists.alioth.debian.org>
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たものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.