如何在 Linux 中从文件名中删除未知字符

如何在 Linux 中从文件名中删除未知字符

我正在使用 Nextcloud 将文件从计算机 A(未知计算机 - 我猜是 Mac)同步到计算机 B(Rocky Linux 服务器)。

来自计算机 A 的一些发票名称中包含特殊字符,这会导致 Rocky Linux 服务器出现异常行为

Rocky Linux 上的奇怪符号

有人遇到过这种行为吗?最好先检查文件名中是否有未知字符,然后从文件名中删除未知字符

编辑:

原始文件名:

FACTUUR n°/Credit Nota n° -0097000156

似乎其中也有一个正斜杠,但在我下载文件后,它神奇地被删除了

我现在将我的语言环境更改为

localectl set-locale en_US.UTF-8

这是 localectl 的输出

localectl 输出

这是语言环境的输出

区域设置输出

现在文件在服务器上如下所示:

在此处输入图片描述

“怪异行为”解释:

我还在此服务器上托管了一个应用程序,该应用程序专门在 asp.net core 应用程序中打开该文件,我猜想它无法“找到”要打开的文件,因为名称中有一个符号

怪异行为解释

编辑:

以前的输出语言环境是相同的,除了 LANG 部分,即

LANG=en_US

输出

echo FACTUUR*-0097000156.PDF|od -tx1 -c

命令:

0000000  46  41  43  54  55  55  52  20  6e  b0  43  72  65  64  69  74
          F   A   C   T   U   U   R       n 260   C   r   e   d   i   t
0000020  20  4e  6f  74  61  20  20  6e  b0  20  2d  30  30  39  30  30
              N   o   t   a           n 260       -   0   0   9   0   0
0000040  30  36  33  32  34  2e  50  44  46  0a
          0   6   3   2   4   .   P   D   F  \n
0000052

我希望允许常规 AZERTY / QWERTY 键盘支持的所有特殊字符

也可以通过应用程序本身上传文件,在这种情况下,文件上传完美

上传文件完美 在 CLI 上完美上传文件

亲切的问候

相关内容