温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux bash递归怎么改变文件扩展名

发布时间:2022-01-27 15:27:16 来源:亿速云 阅读:227 作者:柒染 栏目:开发技术

本篇文章为大家展示了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/' '{}' +

上述内容就是Linux bash递归怎么改变文件扩展名,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI