一位数模式的“ls”给了我奇怪的结果

HEK*_*KTO 3 ls

我在 MacPro 上的 VMWare Fusion 中将 Ubuntu 作为 VM 运行:

ayakovlev@ubuntu:~$ uname -a
Linux ubuntu 3.11.10.3 #1 SMP Thu Mar 6 15:31:54 EST 2014 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

下面的命令输出我期望的结果:

ayakovlev@ubuntu:~$ ls /usr/include/*5*
ax25.h
Run Code Online (Sandbox Code Playgroud)

当我替换为时56我得到了非常奇怪的结果:

ayakovlev@ubuntu:~$ ls /usr/include/*6*
a.out.h  asm  bits  c++  fpu_control.h  gnu  ieee754.h  sys  zconf.h
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?

Spa*_*awk 6

中的通配符ls /usr/include/*6*扩展为任何匹配项。在第一种情况下,它匹配特定的常规文件。但是,如果它匹配诸如 之类的目录/usr/include/x86_64-linux-gnu,它将打印出这些目录的内容(即它会扩展为ls /usr/include/x86_64-linux-gnu)。

您可以验证通配符是否已扩展为带有ls /usr/include | grep 6.

  • 要列出目录条目而不是其内容,您可以使用`-d`:`ls -d /usr/include/*6*`。 (2认同)