相关疑难解决方法(0)

对 ls 命令中星号的行为感到困惑

在 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*)返回包名称等”

ls shell bash

3
推荐指数
1
解决办法
3690
查看次数

标签 统计

bash ×1

ls ×1

shell ×1