为什么最后一棵树没有找到fstab?
tree /etc -P fstab --prune
/etc
??? fstab
0 directories, 1 file
Run Code Online (Sandbox Code Playgroud)
.
tree /etc -P fsta* --prune
/etc
??? fstab
0 directories, 1 file
Run Code Online (Sandbox Code Playgroud)
.
tree /etc -P *stab --prune
/etc
??? fstab
0 directories, 1 file
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
根据我的理解,它至少应该找到 fstab
tree /etc -P *sta* --prune
/etc
0 directories, 0 files
Run Code Online (Sandbox Code Playgroud)
当您在命令行上使用不带引号的通配符模式时,shell 将尝试将其与文件名进行匹配。如果没有文件名匹配的模式,大部分炮弹将保持未扩展模式(zsh默认会抱怨,因为会bash用set -u)。
您显然有一些名称匹配的文件*sta*,但不匹配fsta*or *stab。外壳扩展*sta*该文件的名称,这意味着该模式不再匹配fstab下/etc。
解决方案是在模式周围使用单引号或双引号(并tree在内部进行自己的模式匹配)。
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |