跳转到主内容

网络文件系统( NFS )和 SMB/CIFS 的文件命名约定以及文件名的最大长度是什么?

Views:
28
Visibility:
Public
Votes:
0
Category:
data-ontap-7
Specialty:
core
Last Updated:

可不使用  

适用于

Data ONTAP 7 及更早版本

解答

文件名被截断

错误消息: File not found

无法打开文件名较长的文件

通过 CIFS 从 Windows XP 计算机浏览时,文件名以 8.3 格式显示。

UNIX 用户通过 NFS 挂载点保存文件。通过 CIFS 从 Windows XP 计算机浏览时,文件名以 8.3 格式显示。

 

NFS 和 CIFS 使用的文件的文件命名约定

文件命名约定取决于客户端的操作系统和文件共享协议。例如,对于运行 UNIX 操作系统的客户机来说,文件名区分大小写,对于运行任何 Windows 操作系统的客户机而言,文件名不区分大小写。

文件名的最大长度

在存储系统上、对于支持 PC 长文件名格式的 NFS 客户端和 CIFS 客户端、文件名的最大长度为 255 个字符。

注意:文件名长度受文件路径中名称的长度限制(例如 现有路径为 205 个字符、新文件名最多只能为 50 个字符)。

某些 CIFS 客户端(例如 MS-DOS 和 Windows 3.x 客户端)仅支持 8.3 格式的文件名(文件名包含 8 个字符、文件扩展名包含 3 个字符)。在从 CIFS 客户机访问的任何目录中、存储系统都会创建并维护两个名称:原始长名称和 8.3 格式的附加短名称。存储系统将生成 8.3 名称,如下所示:

  1. 将文件名截断为六个字符。
  2. 它会在tilde (~)名称后面附加一个和一个数字或字母。如果由于类似名称太多而导致字母和数字不足、则会创建一个与原始文件名无关的唯一文件名。
  3. 将文件扩展名截断为三个字符。

注意:短名称后面的数字或字母可确保文件名是唯一的。它不用于显示文件创建顺序。

例如,如果 NFS 客户端创建名为的文件specifications.html、则存储系统创建的短名称为specif~0.htm。如果此短名称已存在、则存储系统将在文件名末尾使用不同的编号。例如,如果 UNIX 客户机创建了另一个名为specifications_new.html的文件、则的简称specifications_new.htmlspecif~1.htm

短名称显示在仅支持 8.3 格式的客户端上。NFS 客户端看不到短名称。在 Windows 95 和 Windows NT 客户端上,您可以选择使用文件属性显示短名称或长名称。

注意在某些情况lose下、在客户端上运行的、使用 8.3 格式名称的应用程序可以使用文件的原始长格式名称。这可能是应用程序保存已编辑的文件的方式造成的。某些应用程序重命名原始文件,然后将编辑过的文件保存为新创建的文件。然后,文件管理器将收到删除原始文件和创建新文件的说明。当客户机仅支持 8.3 名称时、此新名称将不再具有等效的长格式。

请注意, NetApp 上的 DOS 仿真与 Windows XP 上的 DOS 仿真不同。dir/xNetApp 上的 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 客户机显示此类字符的替代显示。客户端将看到完整的长文件名,尽管其外观不同。

注意:切勿将非法字符映射到文件名中使用或预期使用的字符。如果这样做、例如通过将冒号映射到a-umlauta-umlauts CIFS 客户机生成的文件名将被转换为 NFS 客户机的冒号。

每个卷可以有不同的转换表,并且必须根据需要为每个卷配置。此表仅包含 CIFS 非法字符。

案例冲突

如上所述, Windows 系统不区分大小写。因此, UNIX 系统可以创建两个文件test.txtTEST.txt这对它很好、但 Windows 无法将它们分开。文件管理器知道这一点后,将为第二个文件创建一个 Tilde 表示形式,并进一步对文件进行冲突。这应该显示text.txt为和 text~1.txt

注意:在 Apple OS X 10.4 及更早版本中,使用 AFP 还会遇到 Windows 共享、日语字符和 32 个字符的文件名限制。

相关链接:

 
 
在 ONTAP 中启用搜索短名称。

默认情况下,在 ONTAP ( cDOT 、集群模式 Data ONTAP )上运行时、 CIFS SVM (虚拟服务器)不能搜索 8.3 个短名称。

如果需要让 SVM 也搜索可以启用的短名称、但也可能会影响性能。  只有在旧应用程序需要时才应启用该功能。

要启用搜索短名称,请在高级权限级别运行此命令:

vserver CIFS 选项 modify-vserver <SVM name> -is -search-short-names - 启用 true 。

其他信息