
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の場合はワイルドカードを展開させる方法が特殊なのでしょうか?
No.2ベストアンサー
- 回答日時:
zshは、変数への代入の右辺では、ファイル名展開が行われないようですね。
何かオプションが無いかと、man zshexpn を見てみましたが、よくわかりません。
とりあえずでよければ、
files=$(echo ~/../te*.txt)
この回答への補足
> 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"を追記することにしました。
ご回答ありがとうございました。
デフォルトだと、やはりファイル名展開がされないようですね。
最適な方法かは分からないのですが、一応自己解決しましたので、
補足に追記させていただきます。
最後までご回答ありがとうございました。
No.1
- 回答日時:
今、動作確認できないのですが。
> files=~/../te*.txt
このあと、
echo $files
したらどうなります?
念のため。
ファイル名展開は、files=の時点で行われます。lsは、その展開されたファイル名一覧を引数にもらうだけで、*等の展開は行いません
そのエラーメッセージからすると、zshでは echo $files でその入力されたままの~/../te*.txt が出力されると思います。
この回答への補足
ご回答ありがとうございます。
ホームディレクトリを/home/user1として
> files=~/../te*.txt
> echo $files
/home/user1/../te*.txt
と表示されます。
ご指摘いただいたとおり、files=の時点のファイル名展開がなっていないようなのですが、
これはなにが原因なのでしょうか?
私の.zshrcで補完に関する部分の記述は、以下のようなものです。
(.zshrcを消去してデフォルト状態に戻しても同じなので、原因がここにはなさそうなのですが)
==========================================
autoload -U compinit; compinit -u
compinit -u
setopt list_packed# 補完リストを詰めて表示
setopt extended_glob# 拡張補完機能
bindkey "^[[Z" reverse-menu-complete# Shift-Tabで補完候補を逆順でたどる
setopt nonomatch
compdef _files zsh "*.zsh"
zstyle ':completion:*:vim:*' ignored-patterns '*?.o' '*?~' '*.exe' '*\#'
===========================================
ご回答ありがとうございます。
補足に間違いがありました。失礼しました。
.zshrc内の2行目
compinit -u
は1行目と重複しているので不必要でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux ワイルドカードの使い方 4 2023/08/08 20:51
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/02/05 09:55
- iOS ファイルの名前変更 2 2022/08/11 20:47
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echoの出力の最後のスペースを...
-
コマンドプロンプトで相対パス...
-
バッチコマンドの「set」で入力...
-
バッチファイル 指定行の切り出し
-
特定のファイルだけをサブディ...
-
【DOSコマンド】for の デリミ...
-
NULLの置き換えについて
-
バッチファイルで改行の出力
-
バッチファイル 現在のフォルダ...
-
sedの置換文字に変数を使用した...
-
コマンドプロンプトで標準エラ...
-
Linuxでのファイルの一気にコピ...
-
linuxのjoinコマンドがうまくい...
-
バッチファイルのfor文の使い方...
-
コマンドにてテキストファイル...
-
fcコマンドにて、list.txt に変...
-
Apache2.2 ネットワークドライブ
-
bat処理の実行結果ログ出力方法...
-
FTPのバッチファイルで日付を引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echoの出力の最後のスペースを...
-
バッチファイル 指定行の切り出し
-
コマンドプロンプトで相対パス...
-
【VBA】テキストファイルから特...
-
echo "abc" >> test.txt で、先...
-
リダイレクト >> を複数のファ...
-
コマンド実行結果を環境変数に...
-
コマンドにてテキストファイル...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 現在のフォルダ...
-
バッチファイルで特定の文字列...
-
FTPのバッチファイルで日付を引...
-
バッチファイルで改行の出力
-
複数テキストファイル連結につ...
-
bashで、gotoのようなラベルに...
-
バッチコマンドの「set」で入力...
-
NULLの置き換えについて
-
【DOSコマンド】for の デリミ...
-
.txtって、縦書きにはならない...
おすすめ情報