良许Linux教程网 干货合集 Linux bash递归改变文件扩展名

Linux bash递归改变文件扩展名

Linux系统中如何递归改变文件的扩展名?当我们需要大量的更改文件扩展名使用bash递归是一个不错的选择,这调试测试的时候就非常有用,下面为大家分享一下 Linux bash递归改变文件的扩展名具体方法。

Linux bash递归改变文件扩展名

使用find -exec与mv命令递归改变文件扩展名

 find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +

比如:我们要查找src目录下所有.spec.ts 文件并更改扩展名

 find ./src -name "*.spec.ts" -type f bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +
 ./src/users/users.controller.spec.ts
 ./src/auth/auth.service.spec.ts
 ./src/auth/auth.controller.spec.ts
 ./src/roles/roles.controller.spec.ts
 ./src/roles/roles.service.spec.ts
 ./src/shared/prisma.service.spec.ts
 ./src/app.controller.spec.ts
 ./src/permissions/permissions.controller.spec.ts
 ./src/permissions/permissions.service.spec.ts
  • ‘{}’是源文件名,包行相对与查找位置目录./src/auth/auth.service.spec.ts,之所以加上单引号是因为shell会解释{},正常情况下{}在shell中意味着创建一个数组array

  • 使用+形式调用会返回非零值作为退出状态,即find返回非零退出状态。 如果发现遇到错误立即退出

  • bash -c 执行指定的命令

  • ‘mv “{1%.t1}”.t2′ 这是一个mv命令,它接受两个参数第一个参数是$1,即传递来的- ‘{}’

  • Extra open brace or missing close brace1解构,路径部分赋值给1%,这里1%就是./src/auth/auth.service

使用find -exec与rename命令递归改变文件扩展名

安装rename在ubuntu和debian

 sudo apt install rename

安装rename在Centos和RedHat

 sudo dnf install rename

\

 find . -name '*.t1' -exec rename .t1 .t2 {} +
 find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' +

总结

本篇文章为大家演示了如何使用bash的find参数-exec,mv,rename命令递归改变文件的扩展名,大家如果还有疑问可以通过评论区将问题提交给我们。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部