正如标题所说,我正在寻找最可靠的方法来检测文件系统是否区分大小写,提供给定的路径。
在过去,我使用了以下肮脏的技巧:
[ -e "/tmp" -a -e "/Tmp" ] && echo "Case insensitive" || echo "Case sensitive"
之所以有效,是因为系统通常不会同时具有 a/tmp
和/Tmp
文件夹。这当然充其量是hacky,并且对于任意路径没有用,因为它可能指向没有任何文件夹的设备。
我想的是做一些事情,比如获取路径的目录(应该存在)并以某种方式“翻转”它的大小写(所以大写字母变成小写字母,反之亦然),但我也不知道该怎么做;我可以从低到高翻转,但如果目录的名称已经全部大写,那将没有任何用处。
无论如何,我正在寻找有关检测文件系统是否区分大小写的最佳方法的建议,如果可能的话最好不要创建临时文件。