※ ChatGPTを利用し、要約された質問です(原文:zshのワイルドカード展開について)
zshのワイルドカード展開について
このQ&Aのポイント
zshのワイルドカード展開について初歩的な質問ですが、ホームディレクトリの親ディレクトリ内に作成したファイルをlsコマンドで表示しようとすると、エラーが表示されます。
zshrcの設定を確認しても展開されないため、zshのワイルドカード展開方法が特殊な可能性があります。
他のシェルではワイルドカードが展開される一方、zshではワイルドカード展開がうまく機能しない問題が発生します。
zshのワイルドカード展開について、初歩的な質問ですがよろしくお願いします。
ホームディレクトリの親ディレクトリ内に、"test1.txt"と"test2.txt"というファイルを作った上で、
> files=~/../te*.txt
> ls $files
とやると
ls: ..../te*.txtにアクセスできません。 No such file or directory
とエラー表示されてしまいます。
zshrcの設定が影響しているのかと思い、zshrcを一旦カラにしてみましたが、
結果は同じでした。
bash等だと、
> ls $files
でワイルドカードが展開され、
test1.txt test2.txt
と表示されるのですが、zshの場合はワイルドカードを展開させる方法が特殊なのでしょうか?
お礼
ご回答ありがとうございました。 デフォルトだと、やはりファイル名展開がされないようですね。 最適な方法かは分からないのですが、一応自己解決しましたので、 補足に追記させていただきます。 最後までご回答ありがとうございました。
補足
> setopt GLOB_SUBST をzshrc、もしくはzsrenvに追記することで、ワイルドカードが展開されるようです。 ホームディレクトを/home/user1/として、 > file=~/../te*.txt > echo $file /home/user1/../test1.txt /home/user1/../test2.txt > ls $file /home/user1/../test1.txt /home/user1/../test2.txt となり、エラーが表示されなくなりました。 スクリプトとして利用することもあるので、 私の場合は.zshenvの方に上記"setopt GLOB_SUBST"を追記することにしました。