「ツリー」がファイルを見つけることができないことを混乱させる

「ツリー」がファイルを見つけることができないことを混乱させる

最後はなぜ?それが見つかりませんでしたシステムテーブル

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デフォルトでは問題がある場合bashset -u

明らかに名前が一致するファイルがいくつかありますが、*sta*またははありません。シェルはファイル名に展開されます。これはパターンがもはや。fsta**stab*sta*fstab/etc

解決策は、パターンの周りに一重引用符または二重引用符を使用することです(そしてtree内部で独自のパターンマッチングを実行するようにします)。

関連情報