在 Centos 和 Debian 上我试过这个。
ls 命令中的 * 是否意味着递归搜索?
如果我开始输入目录名称并点击选项卡,我会看到:
# ls /etc/rc<tab>
rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rc.local rcS.d/
Run Code Online (Sandbox Code Playgroud)
我想如果我在路径中放一个星号,我会看到同样的东西,但它进行了递归搜索:
# ls /etc/rc*
/etc/rc.local
/etc/rc0.d:
K50netconsole K90network
/etc/rc1.d:
K50netconsole K90network
/etc/rc2.d:
K50netconsole S10network
/etc/rc3.d:
K50netconsole S10network
...
Run Code Online (Sandbox Code Playgroud)
windows dir 命令只会向我显示与 /etc/rc* 匹配的目录,我怎样才能从 ls 获得这种行为(不使用 tab 键)?
****编辑/更新:
好的,现在我明白 * 是由 bash 而不是命令解释的,但它是否总是被解释为“枚举文件和文件夹条目”,或者如果我在不同的上下文中使用它,它会做其他事情吗? bash 中的 if 语句表示“如果 * 与文件系统路径一起使用返回文件和文件夹名称,如果 * 与 rpm 一起使用(如rpm -qa post*)返回包名称等”