Linux:不区分大小写的文件系统


13

有哪些方法可使Linux文件系统不区分大小写?

我有在Windows上开发的asp.net应用程序,但是在Linux上使用mono时总是存在大写/拼写问题。

一种方法是将localhost SMB共享安装到/ var / www。还有其他吗?


14
修复应用程序比破解操作系统来解决损坏的应用程序要容易吗?
亚伦塔特(Aaron Tate)2010年

2
是否通过apache提供此网络应用,可以使用mod_speling。
Zoredache

2
这听起来像是一个非常明显的案例:“或者,您可以教Web开发人员以痛苦的方式使其文件命名与之一致”
Shadur

Answers:


15

如果仅在Mono下运行的应用程序中谈论大小写不敏感,则可以IOMAP像Windows一样使用环境变量告诉Mono忽略大小写。

在此处查看有关其使用的详细信息:http : //www.mono-project.com/IOMap


15

有一个不区分大小写的ext3驱动程序,但是坦率地说,在生产环境中运行这样的事情会使我有些恐惧,因为您正在使用修补程序驱动程序来滚动自己的自定义内核。(是的,是的,我们一直都在“回到过去”,但是那就像1997年那样。)

有一个FUSE实现ciopfs,它也实现了不区分大小写的功能。与补丁内核相比,在生产环境中使用它对我来说没有那么可怕。

您还可以将不区分大小写的文件系统(例如VFAT)用于/var/www文件夹层次结构。在这种情况下,我将使用回送挂载,这样您就不必弄乱磁盘分区了。


ciopfs是废话,我试了一下,它确实只有小写映射为小写字母,忽略任何大写...
困惑

1
@Quandary运行awk '/^ciopfs/ {print $2}' /proc/mounts,它将输出要使用的目录的名称。运行后,ciopfs a/ b/您不应访问或修改下的文件a/

@Quandary小写约束写在项目页面上,并且非常明显,您是否尝试过改进它以处理您的用例或至少使用RTFM?
Michael Shigorin 2015年

8

死灵法师。
回答我自己的问题。
确实有可能。
变体1:
创建一个大小为X-MB(带dd)的.dsk文件,然后在该文件上创建一个带有选项O的JSF文件系统(OS2兼容性-=不区分大小写),
然后将该文件循环挂载到所需的文件夹中。

(apt-get install jfsutils)
dd if=/dev/zero of=jfs.dsk bs=1048576 count=150
mkfs.jfs -O jfs.dsk
mkdir -p /mnt/jfs
mount /volumes/jfs.dsk /mnt/jfs -t jfs -o loop
umount /mnt/jfs/

方案2:
在安装操作系统时,手动对磁盘进行分区,并创建另一个JFS格式的分区,您可以将其安装到任何需要的位置。
一切正常并运行后,您可以使用以下命令重新格式化该分区(警告-这将擦除该分区上的所有数据-请确保您选择了正确的分区,并且尚无任何数据):

卸载已安装的分区

umount /web

重新格式化:

mkfs.jfs -O /dev/hda5

重新安装分区

mount /dev/hda5 /web

现在运行

blkid

然后您将获得新的partition-uuid。
现在转到/ etc / fstab,并用新的/ dev / hda5替换旧的uuid。

如果您这样做有误,请参阅
欢迎使用紧急启动模式...


所以您已经处理了七年半了?!?!您可能会认为,现在与您打交道的“开发人员”已经脱离了小学/小学。
安德鲁·亨利

3
@Andrew Henle:不,我们实际上选择了另一个解决方案-区分大小写的Windows分区(ext3)。现在,.NET Core的问题再次浮出水面,这就是我想出的解决方案。现在,我有了一个不区分大小写的Linux分区,而无需保险丝/卡子,smb,hfs / hpfs +,被黑的extX-fs,循环安装或任何此类废话。这是正确的方法。到目前为止,在过去的7年中,没有人真正令人满意地回答了这个问题,所以我想我会的。
困惑
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.