首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重命名命令不重命名

重命名命令不重命名
EN

Stack Overflow用户
提问于 2016-02-11 19:31:00
回答 1查看 2.6K关注 0票数 1

这应该可以在我的CentOS 6.6上工作,但是不知怎么的,文件名没有被更改。我在这里错过了什么?

代码语言:javascript
复制
rename -f  's/silly//'  sillytest.zi

这应该将sillytest.zi重命名为test.zi,但名称没有更改。当然,我可以使用mv命令,但我想应用于许多文件和模式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 22:56:55

GNU/Linux系统上通常使用两种不同的rename实用程序。

util-linux版本

在基于红帽的系统(如CentOS)上,rename是由util-linux包提供的编译后的可执行文件。这是一个简单的程序,使用非常简单(从相关的手册页面):

代码语言:javascript
复制
rename from to file...

rename将通过用to替换名称中的from的第一次出现来重命名指定的文件。

较新的版本也支持有用的-v, --verbose选项。

NB:如果一个文件的名称与被重命名的文件的新名称重合,那么这个rename命令将悄悄地(没有警告地)重写预先存在的文件。

示例

修正.htm文件的扩展名,以便所有的.html文件都有一个四个字母的.html后缀:

代码语言:javascript
复制
rename .htm .html *.htm

问题中的例子

若要将sillytest.zi重命名为test.zi,请用空字符串替换silly

代码语言:javascript
复制
rename silly '' sillytest.zi

Perl版本

在基于Debian的系统上,rename是一个Perl脚本,当您从Perl的丰富的正则表达式集中获益时,它的功能要强得多。

它的用法是(从它的手册页):

代码语言:javascript
复制
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

rename重命名根据指定为第一个参数的规则提供的文件名。

这个rename命令还包括一个-v, --verbose选项。同样有用的是它的-n, --no-act,它可以作为试运行来查看哪些文件将被重命名。另外,除非使用-f, --force选项,否则它不会覆盖预先存在的文件.

示例

修正HTML文件的扩展名:

代码语言:javascript
复制
rename s/\.htm$/.html/ *.htm
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35348403

复制
相关文章

相似问题

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