首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Perl重命名来重命名文件和目录

使用Perl重命名来重命名文件和目录
EN

Unix & Linux用户
提问于 2017-05-23 13:53:03
回答 1查看 1.7K关注 0票数 4

我正在使用Perl命令行工具递归地搜索一个目录,以重命名它找到的任何目录和文件。我遇到的问题是,rename命令将重命名一个文件的子目录,然后尝试重命名同一个文件的父目录。这将失败,因为子目录已被重命名,导致“没有这样的文件或目录”。

命令:

代码语言:javascript
复制
rename -f 's/foo/bar/' **
rename -f 's/Foo/Bar/' **

例如,这里有一个原始文件,我想将'foo‘替换为'bar’

文件:

代码语言:javascript
复制
/test/foo/com/test/foo/FooMain.java

失败:

代码语言:javascript
复制
Can't rename /test/foo/com/test/foo/FooMain.java /test/bar/com/test/foo/FooMain.java: No such file or directory

首选文件:

代码语言:javascript
复制
/test/bar/com/test/bar/BarMain.java

您可以从错误消息中看到,它试图重命名父目录,但此时子目录已被更改,导致文件未找到错误。是否有参数用于重命名命令来修复此问题,还是需要以另一种方式进行此操作?

EN

回答 1

Unix & Linux用户

发布于 2023-01-16 05:12:28

如前所述,您正在询问有关perl的内容,并在sh中显示代码。

如果您想使用Perl 5

  • 模块File::Find::Rule将帮助您找到将帮助您找到目录。
  • Perl rename将完成剩下的工作。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/366780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档