gpt4 book ai didi

macos - 我希望 -e 在 OS X 上区分大小写。这可能吗?

转载 作者:行者123 更新时间:2023-12-04 16:55:06 26 4
gpt4 key购买 nike

我正在开发一个使用 -e 的脚本标志,如

unless (-e $fileName)
{
...
}

这在 OS X 上运行良好。或者,更确切地说,它不能正常工作。我希望它区分大小写。该脚本也在 Linux 机器上运行,并且 -e检查失败——没错!——因为区分大小写。

我试图用 open <FILEHANDLE, '$fileName') 做一条替代路径,但似乎也不区分大小写。

编辑:感谢下面回答的每个人。我知道 HFS+ 不区分大小写,但我想我可以以某种方式“强制”它。我确实通过执行以下操作最终强制检查:
opendir my($dh), $dirName or die "Couldn't open dir '$dirName'";
my @refFiles = readdir $dh;
closedir $dh;

foreach $refFile (@refFiles)
{
if ($refFile eq $refFileName)
{
$found = 1;
}
}

著名的口头禅:“它不漂亮,但它有效。”

最佳答案

不区分大小写是由于您使用的文件系统 (HFS+),而不是 Perl 函数 -eopen ,也不是底层的 stat(2) 和 open(2) 系统调用。

默认情况下,HFS+ 文件系统不区分大小写;但是,您可以在初始化新文件系统时选择创建区分大小写的 HFS+ 卷(使用磁盘工具、diskutil 或 *newfs_hfs* 等):只需选择“区分大小写”的版本。

我已经看到从区分大小写的启动卷运行时(写得不好)程序出现故障的报告,因此我建议您为区分大小写的工作使用单独的卷。例如,创建一个带有“Mac OS Extended (Case-sensitive, Journaled)”文件系统的磁盘镜像(即“sparse disk bundle image”),并在需要做区分大小写的工作时挂载它(例如 open ~/case-sensitive.sparsebundle ,然后 cd /Volumes/Case-sensitive/foobar 从那里做区分大小写的工作)。

关于macos - 我希望 -e 在 OS X 上区分大小写。这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8920330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com