shell命令行下批量重命名文件, 批量修改文件名, 批量替换文件名, command(推荐第三种)

有一批名称格式相同文件需要重命名成另一种格式,例如“image_0_small.png”批量修改为“image_0_large.png”,用命令行可以轻松完成,下面就来介绍三种不同的解决方法。

 

方法1:for循环+mv命令

for i in `ls image*small.png`; do
    mv $i ${i%small.png}large.png
done

 

在上面的三行代码中,首先用ls image*small.png通配筛选出了需要重命名的文件,避免将目录中其他格式的文件也进行重命名;然后对每一个文件执行mv操作,${i%small.png}是匹配并删除$i后面的small.png,然后补上large.png就行了。

 

方法2:rename一行搞定

上面这个重命名任务如果使用rename来完成,只需要这一行代码:

rename "s/small/large/" image_*.png

rename命令是Linux自带的一个重命名工具,上面这个用法传入了两个参数,前一个参数"s/small/large/"代表文件名中要替换的部分,后一个参数image_*.png代表通配文件名的规则。

rename命名在mac下需要另外安装。

brew install rename

 

用法:

rename -n -e 's/_.*_/_/'  *.png

 

方法3:zsh独有的zmv

如果你用的shell是zsh,那么还可以试试zsh自带的重命名工具zmv。zmv除了可以像rename一样一行搞定批量重命名之外,命令的参数也比rename更容易理解一些,上面的任务用zmv处理起来是这样做的:

zmv 'image_(*)_small.png' 'image_$1_large.png'

zmv看起来会比rename要直观一些,第一个参数'image_(*)_small.png'是待替换的文件名,其中(*)是通配规则,第二个参数'image_$1_large.png'是替换后的文件名。

另外需要注意,zsh并不是一启动就可以直接使用zmv命令,需要先执行:

autoload -U zmv

为了方便可以把上面这一行加载zmv的代码放到~/.zprofile中。

已标记关键词 清除标记
相关推荐
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页