ls 实用程序无法解释模棱两可的文件引用?

ls 实用程序无法解释模棱两可的文件引用?

在我最喜欢的一本 Linux 教科书中,我发现了这样一句话ls :实用程序无法解释模糊文件引用。该参数大致如下:“第一个命令ls使用 参数调用?old。shell 将其扩展?old为匹配的文件名 ,hold并将该名称传递给ls。第二个命令与第一个命令相同,只是 受? 保护'\'。shell 无法将此问号识别为特殊字符,并将其传递给lsls也无法解释它:

$ ls ?old
hold
ls \?old
ls: ?old: No such file or  directory

我的问题是:这里 Shell 因反斜杠而无法解释。因此,此示例仅表明使用反斜杠时,shell 和 都ls无法解释模糊文件引用。它并不能证明不使用反斜杠ls就无法解释模糊文件引用。我这里错在哪里了?

答案1

  • 如果没有反斜杠:shell 会解释?,将其扩展?oldhold,因此接收的参数lshold
  • 使用反斜杠:shell 不会解释?,但它会将其解释\?为文字?,并将其作为 传递?ls因此接收的参数ls?oldls没有看到反斜杠。

相关内容