我从基于 Latin1 的系统中获得了一些旧文件,这些文件的名称在我的 UTF-8 系统上无效。它们显示为各种代码或问号。例如:
/tmp/test $ ls -1
'FRg_Pause lecture_'$'\371''.png'
'FRg_Pause lecture_'$'\353''.png'
'FRg_Pause lecture_'$'\350''.png'
'FRg_Pause lecture_'$'\374''.png'
/tmp/test $ find .
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
./FRg_Pause lecture_?.png
/tmp/test $ tar cvfz test.tar.gz *.png
FRg_Pause lecture_\351.png
FRg_Pause lecture_\352.png
FRg_Pause lecture_\340.png
FRg_Pause lecture_\374.png
我想重命名它们,最好是正确的 UTF-8 名称。例如:
FRg_Pause lecture_\340.png -> FRg_Pause lecture_à.png
但即使将它们重命名为,我也不知道,“FRg_Pause Lecture_340.png”也可以。只要新名称是有效的 UTF-8 并且我们的工具停止抱怨。
然而,一个复杂的问题是有许多文件具有正确的 UTF-8 名称,所以我不能只是将操作系统切换到 Latin1 并完成它。我需要找到不是 UTF-8 的文件(并且在许多目录中有很多)并对它们做一些事情。
有任何想法吗?首先,我发现甚至很难找到文件。
感谢 Artem 和 MC68020 在评论中提出的建议。
不幸的是
detox
没有工作,因为它想创建重复项(例如\340
,并且\342
都映射到a
)。另一方面
convmv
正确地完成了工作。现在开始修复 NAS 上的数千个文件 :)