我想循環遍歷一個目錄,並將某個擴展名的所有文件的擴展名(例如.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:更改文件擴展名
恕我直言,這不是一個重複的問題 - 其他問題不是遞歸的 –