我有一个批量重命名任务,我发现 Ubuntu 和 Fedora 中的“重命名”命令不同。
在 Ubuntu 中,rename 是用 Perl 编写的,并且支持正则表达式。有没有办法在 Fedora 上安装它?
答案1
Perl 脚本(由 Larry Wall 编写)叫做rename.pl
然后你需要将其保存在合适的目录中。可能/usr/local/bin/
并确保它是可执行的,方法是输入
sudo chmod +x /usr/local/bin/rename.pl
答案2
安装 prename (rename 的 Perl 版本):
sudo dnf install prename
答案3
您可以使用以下方式安装控制平面,它是类似于 python 的 pip 的 perl 存储库。
这里有一个教程使用 cpan。
如果你尝试运行重命名它它看起来像这样
重命名--帮助
调用:从重命名到文件...
要安装 perl rename,您可以执行以下操作。您可能需要安装一些依赖项,通常只需按 Enter 即可
cpan
cpan 复制代码1> install File::Rename
CPAN: 可存储文件已加载成功(v2.20)
将读取“/root/.cpan/Metadata”
数据库生成于 2015 年 9 月 30 日星期三 08:17:02 GMT
正在运行模块“File::Rename”的安装
....
正在运行构建安装
正在安装 /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
./Build install -- 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
答案4
对于 Debian 系列 ( .deb
) 发行版,我推荐 @SzG 的回答在 StackOverflow 上。
对于 RedHat 系列(.rpm
)发行版(例如 Fedora),如果你的时间很宝贵(就像我一样),你可以从源代码下载、编译和安装cpan
一是,简洁命令:
# 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 ) && rm -rf "rename-1.9"
笔记:
INSTALL_BASE
可以设置修改基础安装目录。例如
perl "Makefile.PL" INSTALL_BASE=/usr/local