首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在UTF-8系统上找到(并重命名)无效字符(Latin1)的文件?

如何在UTF-8系统上找到(并重命名)无效字符(Latin1)的文件?
EN

Unix & Linux用户
提问于 2022-10-02 20:54:56
回答 1查看 97关注 0票数 3

我从一个基于Latin1的系统中获得了一些旧文件,其名称在我的UTF-8系统上是无效的。它们显示为各种代码或问号。例如:

代码语言:javascript
复制
/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的文件(在许多目录中有很多),并对它们做些什么。

有什么想法吗?首先,我发现很难找到这些文件。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-10-02 23:39:41

感谢Artem和MC68020在评论中给出的建议。

不幸的是,detox没有工作,因为它希望创建副本(例如,\340\342都映射到a)。

另一方面,convmv正确地完成了这项工作。

代码语言:javascript
复制
/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上的数千个文件:)

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/719538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档