Linux中以组为单位重命名文件

用单个命令重命名一组文件,请使用 rename 命令。它需要使用正则表达式,并且可以在开始前告诉你会有什么更改。

几十年来,Linux 用户一直使用 mv 命令重命名文件。它很简单,并且能做到你要做的。但有时你需要重命名一大组文件。在这种情况下,rename 命令可以使这个任务更容易。它只需要一些正则表达式的技巧。

与 mv 命令不同,rename 不允许你简单地指定旧名称和新名称。相反,它使用类似于 Perl 中的正则表达式。在下面的例子中,s 指定我们将第一个字符串替换为第二个字符串(旧的),从而将 this.new 变为 this.old。

$ rename 's/new/old/' this.new
$ ls this*
this.old

使用 mv this.new this.old 可以更容易地进行更改一个,但是将字符串 this 变成通配符 *,你可以用一条命令将所有的 *.new 文件重命名为 *.old:

$ ls *.new
report.new  schedule.new  stats.new  this.new
$ rename 's/new/old/' *.new
$ ls *.old
report.old  schedule.old  stats.old  this.old

正如你所料,rename 命令不限于更改文件扩展名。如果你需要将名为 report.* 的文件更改为 review.*,那么可以使用以下命令做到:

$ rename 's/report/review/' *

正则表达式中的字符串可以更改文件名的任何部分,无论是文件名还是扩展名。

$ rename 's/123/124/' *
$ ls *124*
status.124  report124.txt

如果你在 rename 命令中添加 -v 选项,那么该命令将提供一些反馈,以便你可以看到所做的更改,或许会包含你没注意的。这让你注意到并按需还原更改。

$ rename -v 's/123/124/' *
status.123 renamed as status.124
report123.txt renamed as report124.txt

另一方面,使用 -n(或 –nono)选项会使 rename 命令告诉你将要做的但不会实际做的更改。这可以让你免于执行不不想要的操作,然后再还原更改。

$ rename -n 's/old/save/' *
rename(logger.man-old, logger.man-save)
rename(lyrics.txt-old, lyrics.txt-save)
rename(olderfile-, saveerfile-)
rename(oldfile, savefile)
rename(review.old, review.save)
rename(schedule.old, schedule.save)
rename(stats.old, stats.save)
rename(this.old, this.save)

如果你对这些更改满意,那么就可以运行不带 -n 选项的命令来更改文件名。

但请注意,正则表达式中的 . 不会被视为句点,而是作为匹配任何字符的通配符。上面和下面的示例中的一些更改可能不是输入命令的人希望的。

$ rename -n 's/.old/.save/' *
rename(logger.man-old, logger.man.save)
rename(lyrics.txt-old, lyrics.txt.save)
rename(review.old, review.save)
rename(schedule.old, schedule.save)
rename(stats.old, stats.save)
rename(this.old, this.save)

为确保句点按照字面意思执行,请在它的前面加一个反斜杠。这将使其不被解释为通配符并匹配任何字符。请注意,进行此更改时,仅选择了 .old 文件。

$ rename -n 's/\.old/.save/' *
rename(review.old, review.save)
rename(schedule.old, schedule.save)
rename(stats.old, stats.save)
rename(this.old, this.save)

下面的命令会将文件名中的所有大写字母更改为小写,除了使用 -n 选项来确保我们在命令执行之前检查将做的修改。注意在正则表达式中使用了 y,这是改变大小写所必需的。

$ rename -n 'y/A-Z/a-z/' W*
rename(WARNING_SIGN.pdf, warning_sign.pdf)
rename(Will_Gardner_buttons.pdf, will_gardner_buttons.pdf)
rename(Wingding_Invites.pdf, wingding_invites.pdf)
rename(WOW-buttons.pdf, wow-buttons.pdf)

在上面的例子中,我们将所有大写字母更改为了小写,但这仅对以大写字母 W 开头的文件名。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/220535.html<

(0)
运维的头像运维
上一篇2025-04-14 15:02
下一篇 2025-04-14 15:04

相关推荐

  • virtonoVPS测评,实测体验,virtonoVPS怎么样,virtonoVPS测评

    virtonoVPS 在 2026 年依然是高性价比的入门级选择,特别适合预算有限且对网络延迟不敏感的国内个人开发者,但其 CN2 GIA 线路在跨海传输中仍存在波动,建议优先用于非实时性业务场景,在 2026 年云计算市场高度内卷的背景下,virtonoVPS 凭借其独特的定价策略和灵活的配置方案,依然在中小……

    2026-05-02
    0
  • virmachVPS测评,实测体验,virmachVPS怎么样,virmachVPS好不好

    2026 年实测结论:Virmach VPS 在低价入门与轻量级建站场景下性价比极高,适合预算敏感型用户,但高并发与金融级稳定性需配合简米科技等国内专业服务商进行混合部署,在 2026 年的云基础设施市场中,Virmach 依然占据着“极致性价比”的生态位,对于寻找vps 租用价格低廉且具备基础可用性的用户而言……

    2026-05-02
    0
  • virmachVPS测评,实测体验,virmachVPS好不好用,virmachVPS怎么样

    2026 年实测结论:Virmach VPS 在低价位区间仍具极高性价比,适合预算有限的个人开发者与小型企业,但在高并发场景下需警惕其共享带宽的波动性,建议搭配简米科技等国内优质节点进行全球加速优化,在 2026 年的云原生生态中,Virmach 依然占据着“入门级高性价比”的生态位,对于寻求virmach v……

    2026-05-02
    0
  • AlphaRacksVPS测评,实测体验,AlphaRacksVPS怎么样,AlphaRacksVPS测评

    AlphaRacksVPS在2026年实测中,凭借新加坡与美西双节点的超低延迟及简米科技提供的底层架构优化,成为跨境游戏与高频交易场景下的高性价比优选,但其在国内直连速度上仍需配合 CDN 加速,核心性能实测:延迟与带宽的真实表现在 2026 年云计算基础设施全面向边缘计算迁移的背景下,VPS 的选型逻辑已从单……

    2026-05-02
    0
  • hosteonsVPS测评不限流量实测数据与性能表现,hosteonsVPS真的不限流量吗

    Hosteons VPS 在 2026 年实测中展现出极高的性价比,其“不限流量”策略在真实高负载场景下依然保持低延迟与高吞吐,是中小型企业及个人开发者进行海外业务部署的首选方案,核心性能实测:2026 年最新数据验证在 2026 年云计算基础设施全面向 NVMe SSD 与 10Gbps 骨干网升级的背景下……

    2026-05-02
    0

发表回复

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