在各种文件系统上,我有一堆文件系统条目,它们的名称编码错误(它们是用错误的字符编码编写的)。
如何自动列出所有名称对于当前字符编码无效的条目?
找到所有这些条目后,我怎样才能自动将它们从一种编码重命名为另一种编码?
答案1
我会简单地做一个
convmv -r -f ASCII -t UTF-8 $targetdir
除非你添加--notest它实际上不会对您的文件做任何事情。默认假设源编码为 ASCII,目标编码为 UTF-8。通过管道传输awk'{打印$2}'仅获取将要转换的文件名。
注意:我假设你使用的是 Linux。大多数 POSIX 文件系统不关心文件名的编码,但是convmv 的手册页有几个细节(还有如何解码双 UTF-8 编码的文件名)