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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux(raspberry pi)でのcpコマ...
-
Diskpart のリダイレクトの質問...
-
xcopyで特定のファイルのみをコ...
-
フォルダに入っているファイル...
-
バッチファイル 指定行の切り出し
-
【DOSコマンド】for の デリミ...
-
バッチファイル 現在のフォルダ...
-
echoの出力の最後のスペースを...
-
【VBA】テキストファイルから特...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
-
コマンドプロンプトの「%1」と...
-
iPhoneでXMLファイルを開くには...
-
binファイルを解凍したいの...
-
これってパソコンの最適化が完...
-
公文書のxmlファイルの開き方が...
-
一括でフォルダと同じ名前にフ...
-
CSSを1ページに1枚作るのって変...
-
バッチ終了時にDOS窓を閉じるコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echoの出力の最後のスペースを...
-
echo "abc" >> test.txt で、先...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 指定行の切り出し
-
バッチファイルで改行の出力
-
コマンドにてテキストファイル...
-
bashで、gotoのようなラベルに...
-
コマンドプロンプトで相対パス...
-
NULLの置き換えについて
-
バッチファイル 現在のフォルダ...
-
コマンド実行結果を環境変数に...
-
リダイレクト >> を複数のファ...
-
.txtって、縦書きにはならない...
-
FTPのバッチファイルで日付を引...
-
コマンドプロンプトでFTPでエラー
-
Linux(raspberry pi)でのcpコマ...
-
ダウンロードするとメモ帳に表...
-
UNIX ファイル存在チェックの方法
おすすめ情報