获取 Perl 重命名实用程序,而不是内置重命名[关闭]

2024-10-21 09:14:00
admin
原创
82
摘要:问题描述:许多网站(包括各种 SO 文章)讨论使用 Perl 表达式的“rename”来重命名文件。这将是完美的,但显然这不是我拥有的重命名实用程序,并且这些文章似乎都没有理解“重命名”有多个版本,而且我似乎找不到在哪里可以找到接受 Perl 表达式的版本。我怎样才能获得这里、这里和这里提到的更强大的重命名实...

问题描述:

许多网站(包括各种 SO 文章)讨论使用 Perl 表达式的“rename”来重命名文件。

这将是完美的,但显然这不是我拥有的重命名实用程序,并且这些文章似乎都没有理解“重命名”有多个版本,而且我似乎找不到在哪里可以找到接受 Perl 表达式的版本。

我怎样才能获得这里、这里和这里提到的更强大的重命名实用程序?

我正在运行 Fedora 20。我当前的重命名命令来自包util-linux,显然我需要更好的 Perl 版本。


解决方案 1:

我只能代表 Debian 发言。这两个程序称为

  • /usr/bin/rename.ul来自util-linux包(因此有 .ul 后缀)

  • /usr/bin/prenameperl包中

实际命令通过以下机制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它将优先renameutil-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
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用