

使用bash递归改变文件的扩展名
source link: https://www.myfreax.com/recursively-change-file-extensions-in-bash/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

当需要大量改变文件扩展名的时候会非常有用,这情况可能很少遇到。但是在调试测试的时候就非常有用。
在本文我们将说明如何使用bash的find参数-exec,mv,rename命令递归改变文件的扩展名。-exec顾名思义就是要执行命令的意思。
使用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" "${1%.t1}".t2' 这是一个mv命令,它接受两个参数第一个参数是$1,即传递来的- '{}'
- ${1%.t1}将$1解构,路径部分赋值给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/' '{}' +
废话不想写了,直接ctrl+c/v。你看懂就可以
Recommend
-
26
递归修改当前目录 .cpp、.h、.md 文件为 UTF8 或 UTF8-BOM 格式 发表评论 有些代码目录下的文件格式不同,会导致一些编译错误或者中...
-
8
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文提供一个真实的测试用例需求,设计逻辑类似 Makefile,我以 Bash 处理 JSON 为例,Coding 水平有限,请各位多多包涵哈,欢迎大家...
-
11
需求是批量修改 .crt 和 .key 为 ssl.chain.crt 和 server.key,为什么会有这样的需求主要是踩了一个大坑 Sectigo AddTrust Exter...
-
6
自动递归下载依赖 deb 包 bash 脚本 September 18, 2021 • Read: 92 •
-
5
[Go] 递归获取目录下的文件 jefferyjob · 1天之前 · 83 次点击 · 预计阅读时间 1 分钟 ·...
-
10
使用 Bash 脚本语言进行编程时,有时需要创建一个临时文件。例如,你可能需要一个可以提交到磁盘的中间文件,...
-
5
Nginx修改默认Content-Type值,解决服务器文件没有扩展名时变为下载的问题 | Lenix Blog 1、Nginx 安装之后 default_ty...
-
3
如何在 Linux 命令行中删除指定扩展名的文件 作者:刘光录 2022-11-02 08:20:43 怎样根据文件扩展名来删除多个文件呢?今天我们来介绍几种方法。
-
7
文件扩展名(或文件类型)能帮助您了解文件的用途和适用的关联应用程序。它是跟随在文件名...
-
4
Java中从文件路径字符串中提取文件扩展名3种方法 在
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK