为了账号安全,请及时绑定邮箱和手机立即绑定

如何重命名一堆文件的扩展名?

如何重命名一堆文件的扩展名?

绝地无双 2019-12-07 13:53:33
在目录中,我有一堆*.html文件。我想将它们全部重命名为*.txt我怎样才能做到这一点?我使用bash外壳。
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

如果使用bash,则不需要sed,basename,rename,expr等外部命令。


for file in *.html

do

  mv "$file" "${file%.html}.txt"

done


查看完整回答
反对 回复 2019-12-07
?
开满天机

TA贡献1786条经验 获得超12个赞

这在OSX上对我有效,从.txt到.txt_bak


find . -name '*.txt' -exec sh -c 'mv "$0" "${0%.txt}.txt_bak"' {} \;


查看完整回答
反对 回复 2019-12-07
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

要获得更好的解决方案(仅具有bash功能,而不是外部调用),请参阅其他答案之一。


以下将执行且不需要系统具有rename程序(尽管您通常会在系统上拥有该程序):


for file in *.html; do

    mv "$file" "$(basename "$file" .html).txt"

done

编辑:正如评论中指出的那样,这对于没有正确引用(现在已在上面添加)的文件名中不带空格的文件不起作用。当纯粹在自己的文件上工作(您知道文件名中没有空格)时,这将起作用,但是只要您编写以后可以重用的文件,就不要跳过正确的引用。


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 708 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信