我想循环遍历一个目录,并将某个扩展名的所有文件的扩展名(例如.t1
)更改为.t2
。什么是这样做的bash命令?在Bash中递归更改文件扩展名
回答
如果你有重命名可用,那么使用:
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' \;
如果重命名不可用,则使用:
find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' \;
'发现。 -name'* .t1'-exec rename .t1 .t2 {} +' –
(我的'rename'版本不允许使用sed风格的替换表达式,总喜欢Linux,我以前必须安装TotalCommander for Windows做这样的东西。) –
请使用参数扩展,而不是一个丑陋的'sed'! –
我会做这样在bash:
for i in $(ls *.t1);
do
mv "$i" "${i%.t1}.t2"
done
编辑: 我的错误:它不是递归的,这是我递归更改文件名的方式:
for i in $(find `pwd` -name "*.t1");
do
mv "$i" "${i%.t1}.t2"
done
如果您的bash
版本支持globstar
选件(版本4或更高版本):
shopt -s globstar
for f in **/*.t1; do
mv "$f" "${f%.t1}.t2"
done
- 1. Bash重命名扩展递归
- 2. 文件名扩展在bash
- 3. bash:更改文件夹中所有头文件的扩展名
- 4. Git - 递归删除文件扩展名
- 5. 更改文件扩展名?
- 6. 文件扩展名更改
- 7. 在unix中更改文件扩展名
- 8. 在Python中更改文件扩展名
- 9. 在SharePoint中更改文件扩展名
- 10. 递归文件扩展
- 11. 递归搜索文件中的文件扩展名
- 12. Linux/Cygwin递归复制文件更改扩展
- 13. Bash脚本递归地更改文件名
- 14. 用bash更改文件扩展名的问题
- 15. 用终端/ bash更改目录中多个文件的文件扩展名?
- 16. 递归添加文件扩展名到所有文件
- 17. 使用Linux递归更改文件名?
- 18. Apache mod_rewrite更改文件扩展名
- 19. CMD更改文件扩展名
- 20. 更改文件扩展名的语言?
- 21. 更改gif文件的扩展名
- 22. PHP更改文件扩展名
- 23. 使用Jquery更改文件扩展名
- 24. 如何更改文件的扩展名?
- 25. Ansible角色:更改文件扩展名
- 26. 使用sed更改文件扩展名
- 27. 如何更改文件扩展名?
- 28. 更改文件扩展名VB.NET
- 29. 使用PHP更改文件扩展名
- 30. Grunt:更改文件扩展名
恕我直言,这不是一个重复的问题 - 其他问题不是递归的 –