最後はなぜ?木それが見つかりませんでしたシステムテーブル?
tree /etc -P fstab --prune
/etc
└── fstab
0 directories, 1 file
。
tree /etc -P fsta* --prune
/etc
└── fstab
0 directories, 1 file
。
tree /etc -P *stab --prune
/etc
└── fstab
0 directories, 1 file
ここで何が起こっているのでしょうか?
私の理解によると、それが見つかるはずです少なくとも fstab
tree /etc -P *sta* --prune
/etc
0 directories, 0 files
答え1
コマンドラインで引用符なしでワイルドカードパターンを使用すると、シェルはそれをファイル名と一致させようとします。パターンに一致するファイル名がない場合、ほとんどのシェルはパターンを拡張されていません(zsh
デフォルトでは問題がある場合bash
)set -u
。
明らかに名前が一致するファイルがいくつかありますが、*sta*
またははありません。シェルはファイル名に展開されます。これはパターンがもはや。fsta*
*stab
*sta*
fstab
/etc
解決策は、パターンの周りに一重引用符または二重引用符を使用することです(そしてtree
内部で独自のパターンマッチングを実行するようにします)。