![查找并重命名名称编码错误的文件系统条目](https://linux22.com/image/484676/%E6%9F%A5%E6%89%BE%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E5%90%8D%E7%A7%B0%E7%BC%96%E7%A0%81%E9%94%99%E8%AF%AF%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9D%A1%E7%9B%AE.png)
在各种文件系统上,我有一堆文件系统条目,它们的名称编码错误(它们是用错误的字符编码编写的)。
如何自动列出所有名称对于当前字符编码无效的条目?
找到所有这些条目后,我怎样才能自动将它们从一种编码重命名为另一种编码?
答案1
我会简单地做一个
convmv -r -f ASCII -t UTF-8 $targetdir
除非你添加--notest它实际上不会对您的文件做任何事情。默认假设源编码为 ASCII,目标编码为 UTF-8。通过管道传输awk'{打印$2}'仅获取将要转换的文件名。
注意:我假设你使用的是 Linux。大多数 POSIX 文件系统不关心文件名的编码,但是convmv 的手册页有几个细节(还有如何解码双 UTF-8 编码的文件名)