我有一个目录,其中有一个名为 If 的文件SLOTS.nc
,在 mate 终端中,我输入后ls SLOTS*
就会看到该文件。
如果我ls slots*
没有打字,这一切都没问题。
但是,如果我输入ls SLOTS.NC
,该文件将显示为SLOTS.NC
——该文件不存在。
因此,首先它将扩展名(“。” 之后的部分)与两种情况进行匹配,然后报告大写的文件扩展名。
这使得使用 mv 和 cp 命令来改变文件扩展名变得非常困难。
我的操作系统是Ubuntu 17.10,内核4.13.0-43,桌面环境是mate 1.18.0
有什么方法可以关闭这种文件扩展名大写的操作吗?
好吧,情况变得更加奇怪了!只有当文件位于 USB 拇指驱动器上时才会发生这种情况!该驱动器的格式为 W95 FAT32。在系统磁盘上时,一切都按预期运行。
谢谢您的评论,
乔恩
答案1
W95 FAT32 不区分大小写,但是保留大小写
这意味着 FAT32 不能有两个文件,名称类似SLOTS.nc
和SLOTS.NC
。但是,如果您将文件命名为SLOTS.nc
,系统将保留该信息。
我不确定为什么在文件系统中ls slots*
不起作用。这与 bash 扩展有关。SLOTS.nc
FAT32
*
ls SlOtS.nS
但是,当文件系统为 FAT32 时,完整文件名的任何大小写组合(例如)都会返回该特定的大小写组合。
以下是一个类似的问题超级用户站点你可能会觉得有用。
这对于 Ubuntu 使用的本机文件系统来说不是问题,例如ext4
ext4
Ubuntu 本身使用的其他文件系统都区分大小写。也就是说,SLOTS.ns
和SlOtS.nS
是完全独立的文件。
希望这可以帮助