Linux中国

Linux有问必答:如何在Linux下重命名多个文件

下面是重命名命令的基本语法。

rename [-v -n -f] <pcre> <files>
是Perl兼容正则表达式,它表示的是要重命名的文件和该怎么做。正则表达式的形式是‘s/old-name/new-name/’。

‘-v’选项会显示文件名改变的细节(比如:XXX重命名成YYY)。

‘-n’选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。

‘-f’选项强制覆盖存在的文件。

下面,就让我们看下rename命令的几个实际例子。

### 改变文件扩展名

假设你有许多.jpeg的图片文件。你想要把它们的名字改成*.jpg。下面的命令就会将*.jpeg 文件改成 *.jpg。

```
$ rename &apos;s/.jpeg$/.jpg/&apos; *.jpeg

```

### 大写改成小写,反之亦然

有时你想要改变文件名的大小写,你可以使用下面的命令。

把所有的文件改成小写:

```
# rename &apos;y/A-Z/a-z/&apos; *

```

把所有的文件改成大写:

```
# rename &apos;y/a-z/A-Z/&apos; *

```

![](/data/attachment/album/201502/18/152449qgyweeip0nmy0ntb.jpg)

### 更改文件名模式

现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中,子模式包含在圆括号中,$符后接上数字(比如$1,$2)。

比如,下面的命令会将‘img*NNNN.jpeg’变成‘dan*NNNN.jpg’。

```
# rename -v &apos;s/img_(d{4}).jpeg$/dan_$1.jpg/&apos; *.jpeg

```

```
img_5417.jpeg renamed as dan_5417.jpg
img_5418.jpeg renamed as dan_5418.jpg
img_5419.jpeg renamed as dan_5419.jpg
img_5420.jpeg renamed as dan_5420.jpg
img_5421.jpeg renamed as dan_5421.jpg

```

比如,下面的命令会将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’。

```
# rename -v &apos;s/img_d{3}(d{4}).jpeg$/dan_$1.jpg/&apos; *jpeg

```

```
img_0005417.jpeg renamed as dan_5417.jpg
img_0005418.jpeg renamed as dan_5418.jpg
img_0005419.jpeg renamed as dan_5419.jpg
img_0005420.jpeg renamed as dan_5420.jpg
img_0005421.jpeg renamed as dan_5421.jpg

```

上面的例子中,子模式‘d{4}’会捕捉4个连续的数字,捕捉的四个数字就是$1, 将会用于新的文件名。

via:

译者:[geekpi](https://github.com/geekpi) 校对:[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出

---
本文转载来自 Linux 中国: https://github.com/Linux-CN/archive

对这篇文章感觉如何?

太棒了
0
不错
0
爱死了
0
不太好
0
感觉很糟
0
雨落清风。心向阳

    You may also like

    Leave a reply

    您的邮箱地址不会被公开。 必填项已用 * 标注

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

    More in:Linux中国

    Linux中国

    捐赠 Let&apos;s Encrypt,共建安全的互联网

    随着 Mozilla、苹果和谷歌对沃通和 StartCom 这两家 CA 公司处罚落定,很多使用这两家 CA 所签发证书的网站纷纷寻求新的证书签发商。有一个非盈利组织可以为大家提供了免费、可靠和安全的 SSL 证书服务,这就是 Let's Encrypt 项目。现在,它需要您的帮助
    Linux中国

    关于Linux防火墙iptables的面试问答

    Nishita Agarwal是Tecmint的用户,她将分享关于她刚刚经历的一家公司(印度的一家私人公司Pune)的面试经验。在面试中她被问及许多不同的问题,但她是iptables方面的专家,因此她想分享这些关于iptables的问题和相应的答案给那些以后可能会进行相关面试的人。 所有的问题和相应的答案都基于Nishita Agarwal的记忆并经过了重写。 嗨,朋友!我叫Nishita Agarwal。我已经取得了理学学士学位,我的专业集中在UNIX和它的变种(BSD,Linux)。它们一直深深的吸引着我。我在存储方面有1年多的经验。我正在寻求职业上的变化,并将供职于印度的P
    Linux中国

    Lets Encrypt 已被所有主流浏览器所信任

    旨在让每个网站都能使用 HTTPS 加密的非赢利组织 Lets Encrypt 已经得了 IdenTrust的交叉签名,这意味着其证书现在已经可以被所有主流的浏览器所信任。从这个里程碑事件开始,访问者访问使用了Lets Encrypt 证书的网站不再需要特别配置就可以得到 HTTPS 安全保护了。 Lets Encrypt 的两个中级证书 ...