我从一个基于Latin1的系统中获得了一些旧文件,其名称在我的UTF-8系统上是无效的。它们显示为各种代码或问号。例如:
/tmp/test $ ls -1
'FRg_Pause lecture_'我想重命名他们,理想的正确的UTF-8的名称。例如:FRg_Pause lecture_\340.png -> FRg_Pause lecture_à.png但即使将它们重命名为"FRg_Pause lecture_340.png“,我也不知道。只要新的名称是有效的,UTF-8和我们的工具停止抱怨。然而,一个复杂的问题是,有许多文件有正确的UTF-8名称,所以我不能只是切换到Latin1,并完成它。我需要找到那些不是UTF-8的文件(在许多目录中有很多),并对它们做些什么。有什么想法吗?首先,我发现很难找到这些文件。\371''.png'
'FRg_Pause lecture_'我想重命名他们,理想的正确的UTF-8的名称。例如:A1但即使将它们重命名为"FRg_Pause lecture_340.png“,我也不知道。只要新的名称是有效的,UTF-8和我们的工具停止抱怨。然而,一个复杂的问题是,有许多文件有正确的UTF-8名称,所以我不能只是切换到Latin1,并完成它。我需要找到那些不是UTF-8的文件(在许多目录中有很多),并对它们做些什么。有什么想法吗?首先,我发现很难找到这些文件。\353''.png'
'FRg_Pause lecture_'我想重命名他们,理想的正确的UTF-8的名称。例如:A1但即使将它们重命名为"FRg_Pause lecture_340.png“,我也不知道。只要新的名称是有效的,UTF-8和我们的工具停止抱怨。然而,一个复杂的问题是,有许多文件有正确的UTF-8名称,所以我不能只是切换到Latin1,并完成它。我需要找到那些不是UTF-8的文件(在许多目录中有很多),并对它们做些什么。有什么想法吗?首先,我发现很难找到这些文件。\350''.png'
'FRg_Pause lecture_'我想重命名他们,理想的正确的UTF-8的名称。例如:A1但即使将它们重命名为"FRg_Pause lecture_340.png“,我也不知道。只要新的名称是有效的,UTF-8和我们的工具停止抱怨。然而,一个复杂的问题是,有许多文件有正确的UTF-8名称,所以我不能只是切换到Latin1,并完成它。我需要找到那些不是UTF-8的文件(在许多目录中有很多),并对它们做些什么。有什么想法吗?首先,我发现很难找到这些文件。\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的名称。例如:
A1
但即使将它们重命名为"FRg_Pause lecture_340.png“,我也不知道。只要新的名称是有效的,UTF-8和我们的工具停止抱怨。
然而,一个复杂的问题是,有许多文件有正确的UTF-8名称,所以我不能只是切换到Latin1,并完成它。我需要找到那些不是UTF-8的文件(在许多目录中有很多),并对它们做些什么。
有什么想法吗?首先,我发现很难找到这些文件。
发布于 2022-10-02 23:39:41
感谢Artem和MC68020在评论中给出的建议。
不幸的是,detox没有工作,因为它希望创建副本(例如,\340和\342都映射到a)。
另一方面,convmv正确地完成了这项工作。
/tmp/test $ convmv -f latin1 -t utf-8 -r . --notest
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_ù.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_ë.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_è.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_ü.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_à.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_ê.png"
mv "./FRg_Pause lecture_�.png" "./FRg_Pause lecture_é.png"
Ready! I converted 7 files in 0 seconds.现在开始修复NAS上的数千个文件:)
https://unix.stackexchange.com/questions/719538
复制相似问题