これはうまくいきません:~/xy*~~/xyz*
。
これがうまくいくことを知っていますが、(または)で始まるパスプレフィックスを使用して同じ効果を得る$HOME/xy*~$HOME/xyz*
方法があるかどうか疑問に思います。~
~/
~user/
~nameddir/
答え1
~/xy^z*
ここからまたはを実行できます~/xy(*~z*)
。
答え2
デフォルトでは、シェルはチルダを$HOME
単語の先頭と中間のどこかに拡張すると予想していますが、そのようなことは起こりません。最初のものは~
拡張されますが、$HOME
他のものは拡張されません(この場合はextendedglob
設定のため)。グローバル演算子として扱われます)...
上記のように、これを行う方法はいくつかあります。山ディップzsh
Understanding ksh
-like globs(bash
コピー先)のため、提案は問題ありません。
setopt kshglob
setopt nobareglobqual
print -rl ~/xy?([^z]*)
答え3
否定を行うことができます。
~/(xy|xy[^z]*)
またはより短く:
~/xy(|[^z]*)