继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Linux下批量修改文件名

UYOU
关注TA
已关注
手记 295
粉丝 86
获赞 458

方法一:Rename函数

Linux下修改文件名有mv和rename。其中mv命令只能对单个文件重命名,这是mv命令和rename命令的在重命名方面的根本区别。

linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:
输入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
这个就是C语言版本的
而如果出现:
RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名
Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

rename支持正则表达式

例子:

字母的替换rename "s/AA/aa/" * //把文件名中的AA替换成aa
修改文件的后缀rename "s//.html//.php/" * //把.html 后缀的改成 .php后缀
批量添加文件后缀rename "s/$//.txt/" * //把所有的文件名都以txt结尾
批量删除文件名rename "s//.txt//" * //把所有以.txt结尾的文件名的.txt删掉

方法二:mv函数

  1. 在文件夹shell下创建文件10个文件

touch tmp_{1..10}.txt
  1. 找到含有“_“”的文件夹。

find ./ -name "*_*"
  1. 读取id, 用mv改名,$为自己理解为赋值后的id,格式为while; do; done

find ./ -name "*_*" | while read id; do mv $id ${id/_/-}; done



作者:LeoinUSA
链接:https://www.jianshu.com/p/bdd27936416e

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP