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

在目录中,我有一堆*.html文件。我想将它们全部重命名为*.txt

我怎样才能做到这一点?我使用bash外壳。


绝地无双
浏览 724回答 3
3回答

慕田峪7331174

如果使用bash,则不需要sed,basename,rename,expr等外部命令。for file in *.htmldo  mv "$file" "${file%.html}.txt"done

开满天机

这在OSX上对我有效,从.txt到.txt_bakfind . -name '*.txt' -exec sh -c 'mv "$0" "${0%.txt}.txt_bak"' {} \;

犯罪嫌疑人X

要获得更好的解决方案(仅具有bash功能,而不是外部调用),请参阅其他答案之一。以下将执行且不需要系统具有rename程序(尽管您通常会在系统上拥有该程序):for file in *.html; do    mv "$file" "$(basename "$file" .html).txt"done编辑:正如评论中指出的那样,这对于没有正确引用(现在已在上面添加)的文件名中不带空格的文件不起作用。当纯粹在自己的文件上工作(您知道文件名中没有空格)时,这将起作用,但是只要您编写以后可以重用的文件,就不要跳过正确的引用。
打开App,查看更多内容
随时随地看视频慕课网APP