一尘不染

如何更改许多文件的编码?

linux

我尝试这样:

find . -exec iconv -f iso8859-2 -t utf-8 {} \;

但是输出到屏幕,而不是同一文件。怎么做?


阅读 283

收藏
2020-06-07

共1个答案

一尘不染

尝试这个:

find . -type f -print -exec iconv -f iso8859-2 -t utf-8 -o {}.converted {} \; -exec mv {}.converted {} \;

它将使用带有’.converted’后缀(扩展名)的临时文件,然后将其移动到原始名称,因此,如果您具有带有’.converted’后缀的文件,请当心(我认为您没有)。

此外,此脚本对于包含空格的文件名也不安全,因此为了更加安全,您应该双引号:“ {}”而不是“ {}”和“ {} .converted”而不是{}
.converted

2020-06-07