网络文件系统( NFS )和 SMB/CIFS 的文件命名约定以及文件名的最大长度是什么?
不可不使用
适用场景
- ONTAP 9.
- CIFS \NFS
- 文件路径\名称的最大长度
问题解答
- 文件名将被截断
- 错误消息:
File not found
- 无法打开文件名较长的文件
- 通过SMB从Windows客户端计算机浏览时、文件名显示为8.3格式。
- UNIX用户正在通过NFS挂载点保存文件。通过CIFS从Windows客户端计算机浏览时、文件名显示为8.3格式。
- NFS和CIFS使用的文件的文件命名约定
- 文件命名约定取决于客户端的操作系统和文件共享协议。例如、对于运行UNIX操作系统的客户端、文件名区分大小写;对于运行任何Windows操作系统的客户端、文件名不区分大小写。
- 文件名的最大长度
- 在存储系统上、对于支持PC长文件名格式的NFS客户端和CIFS客户端、文件名的最大长度为255个字符。
注意:这与最大文件路径长度是分开的,对于CIFS为32727,对于 NFS为4096。
- 某些CIFS客户端(如MS-DOS和Windows 3.x客户端)仅支持8.3格式的文件名(文件名8个字符、文件扩展名3个字符)。在可从CIFS客户端访问的任何目录中、存储系统会创建并维护两个名称:原始长名称和8.3格式的附加短名称。 存储系统将 生成8.3名称、如下所示:
- 此操作会将文件名转换为六个字符。
- 它会
tilde (~)
在名称后附加一个和一个数字或字母。如果由于名称太多而导致缺少字母和数字、则会创建一个与原始文件名无关的唯一文件名。 - 它会将文件扩展名会被短接为三个字符。
注意:短名称后面附加的数字或字母可确保文件名是唯一的。它不用于显示文件创建顺序。
- 例如,如果NFS客户端创建一个名为的文件
specifications.html
,则 存储系统创建的简称 为specif~0.htm
。如果此短名称已存在、则 存储系统 会在文件名末尾使用其他数字。例如,如果UNIX客户端创建另一个名为的文件specifications_new.html
,的简称specifications_new.html
为specif~1.htm
。 - 短名称显示在仅支持8.3格式的客户端上。短名称对NFS客户端不可见。在Windows 95和Windows NT客户机上,您可以选择使用文件属性来显示短名称或长名称。
注意: 在某些情况下,在使用8.3格式名称的客户端上运行的应用程序可以使用 lose
文件的原始长格式名称。这可能是由于应用程序保存已编辑的文件的方式而导致的。某些应用程序会重命名原始文件、然后将编辑后的文件保存为新创建的文件。然后、文件管理器会收到删除原始文件并创建新文件的说明。如果客户端仅支持8.3名称、则此新名称将不再具有等效的长格式。
- 请注意,NetApp上的DOS模拟与Windows XP上的不同。
dir/x
NetApp上的cmd会在达到限制后随机排列名称、而在XP目录中、前两个字符会保留下来。此限制为5个文件或目录、并且在8.3命名方案的前8个字符中包含重复的字符集。XP和NetApp将根据~1
命名方案的部分按上次修改日期对文件进行命名、而NetApp将在达到5的限制后删除编号。- 在Windows XP Professional SP2中显示如下:
- 目录
C:test dir /x
04/24/2008 10:41 AM <DIR> .
04/24/2008 10:41 AM <DIR> ..
04/24/2008 10:41 AM <DIR> MS57C1~1 MSSDK_4_01
04/24/2008 10:41 AM <DIR> MS67C1~1 MSSDK_4_02
04/24/2008 10:41 AM <DIR> MS77C1~1 MSSDK_4_03
04/24/2008 10:41 AM <DIR> MSSDK_~4 MSSDK_4_04
04/24/2008 10:41 AM <DIR> MSSDK_~3 MSSDK_4_05
04/24/2008 10:41 AM <DIR> MSSDK_~2 MSSDK_4_06
04/24/2008 10:41 AM <DIR> MSSDK_~1 MSSDK_4_07
0 File(s) 0 bytes
9 Dir(s) 37,710,434,304 bytes free
- 同样的事情、但在NetApp上:
- 目录
Z:test dir /x
04/24/2008 10:39 AM <DIR> .
04/24/2008 10:38 AM <DIR> ..
04/24/2008 10:39 AM <DIR> MSSDK_~1 MSSDK_4_01
04/24/2008 10:39 AM <DIR> MSSDK_~2 MSSDK_4_02
04/24/2008 10:39 AM <DIR> MSSDK_~3 MSSDK_4_03
04/24/2008 10:39 AM <DIR> MSSDK_~4 MSSDK_4_04
04/24/2008 10:39 AM <DIR> MSSDK_~5 MSSDK_4_05
04/24/2008 10:39 AM <DIR> U9ORL00~ MSSDK_4_06
04/24/2008 10:39 AM <DIR> V9ORL00~ MSSDK_4_07
0 File(s) 0 bytes
9 Dir(s) 2,967,848,583,168 bytes free
- 正在配置非法字符的备用表示形式
- 如果通过NFS创建的文件包含非法字符、则
charmap
可以使用命令设置转换表、以便向CIFS客户端显示此类字符的备用显示方式。客户端将看到完整的长文件名、尽管看起来有所不同。
- 如果通过NFS创建的文件包含非法字符、则
备注:请务必不要将非法字符映射到文件名中使用或预期使用的字符。如果这样做,例如通过将冒号映射到 a-umlaut
, a-umlauts
则在CIFS客户端生成的文件名中,NFS客户端将转换为冒号。
- 每个卷可以有不同的转换表、必须根据需要为每个卷配置。此表仅涵盖对于CIFS非法的字符。
- 大小写冲突:
- 如上所述、Windows系统不区分大小写。因此、UNIX系统可以创建两个文件
test.txt
、TEST.txt
这对它来说是合适的、但Windows无法将它们分开。了解这一点后、文件管理器将为第二个和以后的每一个发生反向的文件创建一个波形表示。该值应显示为text.txt
和text~1.txt
- 如上所述、Windows系统不区分大小写。因此、UNIX系统可以创建两个文件
注意: 在Apple OS X 10.4及更早版本中、使用AFP也会受到Windows共享、日语字符以及文件名32个字符限制的限制。
- 在ONTAP中启用短名称搜索。
- 默认情况下、在 ONTAP (cDOT、集群模式Data ONTAP)上运行时、CIFS SVM (SVM)无法搜索8.3短名称。
- 如果需要SVM也搜索短名称、则可以启用此功能、但也可能会影响性能。 只有在原有应用程序需要时、才应启用它。
- 要启用短名称搜索、请在高级权限级别运行此命令:
::*> vserver cifs options modify -vserver <SVM name> -is-search-short-names-enabled true.