从RHEL文件名中删除隐藏的特殊字符

时间:2018-11-16 14:54:42

标签: character rename rhel


在RHEL7服务器中,我们确实通过Outlook或直接附加从其他笔记本电脑接收文件,这些文件存储在配置为iocharset = iso8859-1编码的CIFS驱动程序中。

由于某些原因,也许是由于编码问题,应用程序无法识别无效字符,而是将其替换为¿,但是在系统级,同一无效字符被替换为?,因此我创建了一个小脚本来重命名文件名并替换为正常吗?通过¿:

find . -name "*[?]*" -exec bash -c 'x="{}"; y="$(sed "s/[?]\+/¿/g" <<< "$x")" && mv "$x" "$y" ' \;

问题是最近我确实注意到在?之前有一个隐藏的/添加的,我的命令不再起作用,系统也看不到/,要找到它,我需要按tab键来找到隐藏/
这是一个示例:

ls
Salvage?_Not_Released_?

我键入mv Salvage,然后按 Tab 来完成文件名,然后出现/?

mv Salvage\?_Not_Released_\?

您对如何解决此问题有任何想法吗?

0 个答案:

没有答案