查找和重命名具有严重编码名称的文件系统条目

在各种文件系统上,我有一堆文件系统条目编码错误(用错误的字符编码写入)。

我怎样才能自动列出名字对于当前字符编码无效的所有条目?

find所有这些条目后,我怎么能自动将它们从一个编码重新命名为另一个?

我只是做一个

convmv -r -f ASCII -t UTF-8 $targetdir 

除非你添加–notest它实际上不会对你的文件做任何事情。 默认情况下,假定来自编码的是ASCII码,编码是UTF-8。 通过awk“{print $ 2}”的pipe道只获取将被转换的文件名。

注意:我假设你正在使用Linux。 大多数POSIX文件系统不关心文件名的编码,但是convmv的手册页有一些细节(也是如何解码双UTF-8编码的文件名)