在我最喜欢的一本 Linux 教科书中,我发现了一个声明,即ls
实用程序无法解释模棱两可的文件引用。参数或多或少是这样的:“首先ls
使用参数调用?old
。shell 扩展?old
为匹配的文件名,hold
并将该名称传递给ls
。第二个命令与第一个命令相同,除了?
受保护'\'
. shell 不将此问号识别为特殊字符并将其传递给ls
.ls
也无法解释它:
$ ls ?old
hold
ls \?old
ls: ?old: No such file or directory
我的问题:这是因为反斜杠而无法解释的 Shell。因此,此示例仅显示带有反斜杠的 shell 既不能解释也ls
不能解释模棱两可的文件引用。它并不能证明没有反斜杠ls
就不能解释模棱两可的文件引用。我在这里做错了什么?
?
,扩展?old
为hold
,因此ls
接收的参数是hold
。?
,但它确实解释\?
为文字?
,并将其传递为?
tols
。所以ls
接收的参数是?old
。ls
看不到反斜杠。