次の for ループがあります。
for f in ~/.lo-rcs/common/*
do
. $f
done
次のエラーが返されます。
bash: /home/sk/.lo-rcs/common/*: No such file or directory
bashrcコマンドを複数の別々のファイルに並べ替え続けます$HOME/.lo-rcs/common
。
質問
Bashがワイルドカードパターン文字列と同じ名前のファイルを検索しないのはなぜですか?
- 注#1:
.lo-rcs/common
別々のエイリアスファイルを持つ私のローカルrc設定フォルダ。 1つはエクスポートした変数用、もう1つは関数用などで簡単にメンテナンスできます。 - ノート2:以下のファイルはすべて
.lo-rcs/common
隠しファイルです。ファイルが前にドットとしてマークされました。
答え1
~/.lo-rcs/common/*
ディレクトリに隠されていないすべてのファイルと一致します。ディレクトリにファイルがない場合、またはすべてのファイルが非表示になっている場合は、パターンが自己評価され、エラーメッセージが表示されます。
これらのファイルを隠す理由はありません。 - 名前を変更すると、すべてが期待どおりに機能します。
これらのファイルを非表示にするには、.を使用できます~/.lo-rcs/common/.*
。ただし、これにはと.
が含まれます..
。