获取 Perl 重命名实用程序,而不是内置重命名[关闭]
- 2024-10-21 09:14:00
- admin 原创
- 82
问题描述:
许多网站(包括各种 SO 文章)讨论使用 Perl 表达式的“rename”来重命名文件。
这将是完美的,但显然这不是我拥有的重命名实用程序,并且这些文章似乎都没有理解“重命名”有多个版本,而且我似乎找不到在哪里可以找到接受 Perl 表达式的版本。
我怎样才能获得这里、这里和这里提到的更强大的重命名实用程序?
我正在运行 Fedora 20。我当前的重命名命令来自包util-linux
,显然我需要更好的 Perl 版本。
解决方案 1:
我只能代表 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-rename 安装到 ,/usr/local/bin
它将优先rename
于util-linux
。 安装到 时,手册页也是如此/usr/local/share/man/man1/
。
我刚刚在 Github 上创建了一个单独的 Perl-rename 包:https ://github.com/subogero/rename
解决方案 2:
您可以使用cpan安装它,它是类似于 python 的 pip 的 perl 存储库。
这是有关使用 cpan 的教程。
如果你尝试运行重命名它它看起来像这样
重命名--帮助
调用:从重命名到文件...
要安装 perl rename,您可以执行以下操作。您可能需要安装一些依赖项,通常只需按 Enter 即可
cpan
cpan 1 > install File::Rename
CPAN: 可存储文件已加载 ok (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
解决方案 3:
在 RedHat 8.4 上(但可能在 Fedora 上也可以运行)
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
这里创建一个带有 .jpeg 扩展名的空文件。下一行重命名当前目录中所有带有 .jpeg 扩展名的文件:它会从这些文件的 jpeg 扩展名中删除 e。(第一行是为了确保目录中至少有一个这样的文件。)
(在 Debian/Ubuntu 上,您可以安装该rename
软件包,然后您将获得rename
与上述相同的命令prename
。另请阅读 SzG 关于替代方案和符号链接的回答:它可能像我写的那么简单,也可能不像我写的那么简单。
或者您需要安装 libpath-tiny-perl 包来安装 CPAN。)
解决方案 4:
我必须做以下事情:
# In bash
sudo yum install perl-CPAN
sudo cpan
# In CPAN shell
install Module::Build
install File::Rename
解决方案 5:
我创建了一篇关于 Perl 在许多发行版中重命名的文章:
https://unix.stackexchange.com/a/727288/12574
rpm
基于发行版:dnf install prename
archlinux
:pacman -S perl-rename
*BSD
:pkg install p5-File-Rename
Debian like/Ubuntu
apt install rename
slackware
:松弛构建
解决方案 6:
对于 Debian 系列(.deb
)发行版,我推荐@SzG 的回答。
对于 RedHat 系列(.rpm
)发行版(例如 Fedora),如果您的时间很宝贵cpan
(就像我一样),您可以通过一个简洁的命令从源代码下载、编译和安装:
# 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
来源
解决方案 7:
对于 Arch Linux,其
sudo pacman -S perl-rename
解决方案 8:
最近,我必须将出色的 Perlrename
包安装到 Docker 容器中的 Alpine Linux 中,以进行 Gitlab CI/CD 操作:
apk update
apk add --no-cache make perl-utils
cpan File::Rename
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件