许多网站(包括各种SO文章)谈论使用"重命名"使用Perl表达式重命名文件。
这将是完美的,但显然这不是我所拥有的重命名实用程序,并且这些文章似乎都没有理解有多个版本的"重命名"我似乎无法找到接受Perl表达式的版本。
如何获得提及here,here和here的更强大的重命名工具?
我正在运行Fedora 20.我当前的重命名命令来自util-linux
包,显然我需要Perl版本,这更好。
答案 0 :(得分:17)
我只能说Debian。这两个程序叫做
/usr/bin/rename.ul
包的util-linux
(因此是.ul后缀)/usr/bin/prename
包的perl
实际的rename
命令通过/etc/alternatives
机制起作用,即
/usr/bin/rename
是/etc/alternatives/rename
/etc/alternatives/rename
是/usr/bin/prename
同样的问题一直困扰着Cygwin,这是一个Red Hat产品,所以应该更像Fedora。我星期一看看我公司的笔记本电脑。我记得Perl-rename曾经在那里工作过。可能在我安装util-linux
之前。
如果您将Perl重命名安装到/usr/local/bin
,它将优先于rename
util-linux
。安装到/usr/local/share/man/man1/
时的联机帮助页也是如此。
我刚刚在Github上创建了一个单独的Perl-rename包:https://github.com/subogero/rename
答案 1 :(得分:14)
您可以使用cpan安装它,这是类似于pip for python的perl存储库。
这是使用cpan的tutorial。
如果您尝试重命名,则看起来像这样
重命名--help
呼叫:从文件重命名...
要安装perl重命名,您可以执行以下操作。您可能需要安装一些依赖项,通常只需按Enter键
即可CPAN
CPAN 1>安装File :: Rename
CPAN:可以加载好(v2.20)
去阅读' /root/.cpan/Metadata'
数据库于2015年9月30日星期三08:17:02 GMT生成 运行模块的安装' File :: Rename'
....
运行Build安装
安装/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 /文件的重命名,0.20.tar.gz
./Build安装 - 确定
这就是你如何从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
答案 2 :(得分:1)
我必须做以下事情:
# In bash
sudo yum install perl-CPAN
sudo cpan
# In CPAN shell
install Module::Build
install File::Rename
答案 3 :(得分:1)
对于Debian家族(.deb
)发行版,我推荐@ SzG的answer。
对于RedHat家族(.rpm
)发行版(例如Fedora),如果您的时间珍贵(如我的),您可以从源代码下载,编译和安装{ {3}}在一个简洁命令中:
# 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
答案 4 :(得分:1)
在红帽 8.4 上
sudo yum install perl-CPAN
sudo cpan
install module::Build
install File::Rename
您可以创建别名:
alias prename='/usr/local/bin/rename'
使用:
touch pic.jpeg
prename 's/\.jpeg$/.jpg/' *.jpeg