应该没事的 Windows资源管理器在正确显示文件名大小写方面做得很好。我在smb.conf中使用它来确保在资源管理器中键入的内容是Samba使用的内容(我将所有这些设置为每股):
case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes
我进行了快速测试(后端为Samba 3.0.24,前端为WinXP)。文件是通过SSH会话在samba服务器上创建的。
$ cd /some/samba/share/path
$ mkdir test
$ cd test
$ mkdir test1 TEST1
$ touch test1/foo TEST1/bar
之后,我浏览了映射的驱动器到测试目录。我可以看到“ test1”和“ TEST1”目录。我打开“ test1”,看到了“ foo”文件。我打开“ TEST1”,看到了“ bar”文件。到目前为止,一切都很好。
然后,我返回到测试目录,并在“资源管理器”窗口中将TEST1重命名为TEST2。Windows略微有些变化-重命名了文件夹,然后将两个文件夹都显示为TEST2-似乎已经重命名了两个文件夹。但是,在SSH终端中,我检查了:
$ ls
test1 TEST2
因此Windows重命名了文件,Samba正确获得了文件名。当我在资源管理器窗口中按F5刷新文件夹内容时,显示更改为显示正确的文件夹名称。
注意: Linux文件系统允许Windows不允许的某些字符(例如“:”)。 Samba有一个“名字粉碎”选项把这些文件名弄成Windows会喜欢。例如,如果我在SSH窗口中创建一个名为“ FA:23”的文件,Samba会将名称更改为“ F7T4H0〜F”,这就是资源管理器窗口中显示的内容。
case sensitive
中,启用该选项后,您将无法访问共享中的目录。auto
在这种情况下,您应该使用该选项。