web-dev-qa-db-ja.com

組み込みの名前変更の代わりにPerl名前変更ユーティリティを入手する

多くのサイト(さまざまなSO記事を含む))では、Perl式を使用した「名前変更」を使用してファイルの名前を変更することについて説明しています。

これは完璧ですが、どうやらこれは私が持っている名前変更ユーティリティではありません。これらの記事はどれも、「名前変更」のバージョンが複数あることを理解していないようで、Perl式を受け入れるバージョンをどこで取得できるかわかりません。

herehere 、および here で言及されているより強力な名前変更ユーティリティを入手するにはどうすればよいですか?

私はFedora 20を実行しています。現在の名前変更コマンドはutil-linuxパッケージで、どうやらPerlバージョンが必要なようです。

25
WorldsEndless

私はDebianのためだけに話すことができます。 2つのプログラムが呼び出されます

  • /usr/bin/rename.ulutil-linuxパッケージから(したがって、.ulサフィックス)
  • Perlパッケージの/usr/bin/prename

実際のrenameコマンドは/etc/alternativesメカニズムを介して機能します。

  • /usr/bin/rename/etc/alternatives/renameへのシンボリックリンクです
  • /etc/alternatives/rename/usr/bin/prenameへのシンボリックリンクです

同じ問題がRed Hat製品であるCygwinで私を悩ませてきたので、Fedoraにより似ているはずです。月曜日に会社のラップトップを見る予定です。そして、Perl-renameが時々そこで働いていたことを覚えています。おそらくutil-linuxをインストールする前でしょう。

Perlの名前変更を/usr/local/binにインストールすると、util-linuxrenameよりも優先されます。 /usr/local/share/man/man1/にインストールした場合のマンページも同様です。

Githubに別のPerl-renameパッケージを作成しました: https://github.com/subogero/rename

17
SzG

cpan を使用してインストールできます。これは、Pythonのpipに似たPerlリポジトリです。

ここにcpanの使用に関する tutorial があります。

名前を変更しようとすると、次のようになります。

名前変更--help
呼び出し:名前をファイルに変更...

Perlの名前変更をインストールするには、次のようにします。いくつかの依存関係をインストールする必要があるかもしれませんが、通常は単にEnterキーを押すだけです。

cpan
cpan 1 > install File :: Rename
CPAN:格納可能なロード済み(v2.20)
「/ root/.cpan/Metadata」を読みます
データベースは2015年9月30日水曜日の08:17:02 GMTに生成されました
モジュール 'File :: Rename'のインストールを実行しています
....
Build installを実行しています
/usr/local/share/man/man1/rename.1のインストール
/usr/local/share/Perl5/File/Rename.pmのインストール
/usr/local/share/man/man3/File :: Rename.3pmをインストールしています
/usr/local/bin/renameのインストール
/usr/local/lib64/Perl5/auto/File/Rename/.packlistを書き込んでいます
RMBARKER/File-Rename-0.20.tar.gz
./ビルドインストール-OK

これは、cpanから名前変更をインストールする方法です。
次は、システムで動作させることです。複数の名前変更がインストールされている可能性があります。

which rename  
/usr/bin/rename  

あなたが実際にこれが欲しいとき。

/usr/local/bin/rename --help
Usage:
    rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E *perlexpr*]*|*perlexpr*
    [ *files* ]

Options:
    -v, -verbose
            Verbose: print names of files successfully renamed.

    -n, -nono
            No action: print names of files to be renamed, but don't rename.

    -f, -force
            Over write: allow existing files to be over-written.

    -h, -help
            Help: print SYNOPSIS and OPTIONS.

    -m, -man
            Manual: print manual page.

    -V, -version
            Version: show version number.

    -e      Expression: code to act on files name.

            May be repeated to build up code (like "Perl -e"). If no -e, the
            first argument is used as code.

    -E      Statement: code to act on files name, as -e but terminated by
            ';'.

/usr/bin/ですが、古いスクリプトに依存する既存のスクリプトやプログラムを壊さないように、少し異なる名前を付けています。

ln -s /usr/local/bin/rename /usr/bin/rename.pl
14
nelaaro

私は次のことをしなければなりませんでした:

# In bash
Sudo yum install Perl-CPAN
Sudo cpan

# In CPAN Shell
install Module::Build
install File::Rename
1
qed

Debianファミリ(.deb)ディストリビューションです。@ SzGの answer をお勧めします。

RedHatファミリ(.rpm)ディストリビューション(例:Fedora)、時間が高品質(私のものと同じ)の場合、ソースから cpan in one、terseコマンド:

# Install (replace `rename-1.9` below with another version if desired)
curl -L "http://search.cpan.org/CPAN/authors/id/P/PE/PEDERST/rename-1.9.tar.gz" | tar -xz && ( cd "rename-1.9"; Perl "Makefile.PL"; make && make install )

# Cleanup
rm -rf "rename-1.9"

注:

INSTALL_BASEを設定して、基本インストールディレクトリを変更できます。

例(Perl "Makefile.PL" INSTALL_BASE=/usr/local

ソース

1
Travis Clarke