パターンがこの文字列と一致すると、Bashが「No such file..」を返すのはなぜですか?

パターンがこの文字列と一致すると、Bashが「No such file..」を返すのはなぜですか?

次の 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/.*。ただし、これにはと.が含まれます..

関連情報