在Windows / Linux之间在NFS上保留文件名[关闭]

问题描述 投票:0回答:1

是否可以通过任何方式配置NFSClient或如何在Windows或Linux上安装共享,以便可以在系统之间保留文件名?

[目前,我们有大量文件是在Windows上编写的,现在已移至Google Filestore(NFSv3),以便可以从其他服务器进行访问。问题在于,许多文件的名称中都有瑞典语字符(ÅÄÖ),并且在与它们相对的系统中列出这些文件时,文件名变得不可读(文件内容没有问题,只是文件名名称)

目前,我正计划以编程方式重命名所有文件以删除有问题的字符,但如果可能的话,希望不必这样做。

下面是在Windows和Linux方面的外观示例。在Linux上创建Linux文件,在Windows上创建Windows。

Linux

enter image description here

Windows

enter image description here

linux windows filenames nfs google-cloud-filestore
1个回答
2
投票

此答案可能无法帮助您解决问题,但我想我会提供一些理论上的概述,以帮助您(和其他人)进行研究。

您可能还想阅读this

无论如何,我们去:

这里有很多活动。

  • 有NTFS使用的编码以及Google Filestore使用的任何文件系统。
  • 您用来创建和查看这些文件名的程序支持某些编码。
  • 您正在使用的终端程序支持某些编码。
  • 有NFSv3支持的编码。

文件系统

在Linux上,文件名只有2条规则:它们不能包含斜杠(/),并且不能包含空字节(\0)。 ASCII和UTF-8与此规则兼容,它们基本上是linux文件系统支持的编码。

Windows might have different ideas。可能需要一些配置才能使Windows文件系统发出不同编码的字符。

创建和列出文件

在Linux上,您的文件名为almost always encoded in UTF-8。然后,ls和亲戚通常不会考虑太多,只是假设文件系统需要上述规则。

Windows'dir显然知道如何使用NTFS的字符编码,但是它可以读取Linux的UTF-8文件名吗?据我所知,它支持with some configuration

终端

现代Linux终端程序都是UTF-8,但是可能需要安装对其他字符集的支持(因为Windows)。

在Windows上,似乎有not been fully supported as of last year。也许已经更改,或者您需要另一个终端。上面的配置可能会有所帮助。

NFS

NFSv4.1及更高版本具有对UTF-8的明确支持,以及Unix Windows互操作性的明确目标。

NFSv3没有任何一个,并且对任何非ASCII的支持都是not guaranteed

[我发现one implementation在NFSv3上支持UTF-8,但是仅Google Filestore的文档says“支持任何NFSv3兼容的客户端”。

做什么

继续并重命名文件。互操作性还有更多问题,例如what characters are reserved的概念不同,有很多限制,最好的选择是确保所有文件名都是简单的纯ASCII码,我什至避免使用文件名中的空格之类的东西,这使工作变得更加轻松。 >

© www.soinside.com 2019 - 2024. All rights reserved.