我应该如何批量更改文件的扩展名?

12 浏览
0 Comments

我应该如何批量更改文件的扩展名?

在目录中,我有很多*.html文件。我想把它们全部重命名为*.txt

我该怎么做?我使用bash shell。

admin 更改状态以发布 2023年5月25日
0
0 Comments

对于更好的解决方案(只使用bash功能,与外部调用相反),请参见其他答案之一


以下将完成操作,而不需要系统拥有rename程序(虽然您在系统上通常都会有此功能):

for file in *.html; do
    mv "$file" "$(basename "$file" .html).txt"
done

编辑:正如评论中指出的那样,如果文件名中有空格而没有正确的引用,则此方法无法工作(现在已添加上述内容)。在纯粹处理您自己知道文件名不包含空格的文件时,此方法将起作用,但每当您编写可能在以后重用的内容时,不要省略正确的引用。

0
0 Comments

如果使用bash,就无需使用sed、basename、rename、expr等外部命令。

for file in *.html
do
  mv "$file" "${file%.html}.txt"
done

0