Shell globがデフォルトでドットファイルを省略するのはなぜですか? [コピー]

Shell globがデフォルトでドットファイルを省略するのはなぜですか? [コピー]

1)

echo *

[az、AZ]を含むファイル名のみが表示され、.で始まるファイルは表示されません。

例えば、.bashrcシェルグローブで覆わずに*

2)

echo .*期待される出力を提供します。


最初のケースでは、シェルglobにドットで区切られたファイル名が含まれていないのはなぜですか?

ベストアンサー1

デフォルトでは、これはワイルドカードが機能する方法です(通常はシェルだけではありません)。 ~によるとglob(7)マンページ:

パス名

[...]

ファイル名が「.」で始まる場合、この文字は明示的に一致する必要があります。 (したがって、どのファイルもrm *削除され .profileず、ファイルはアーカイブされません。tar c *tar c .

また、見ることができますPOSIX関連部分

シェル設定を使用してこれを変更したり、一部のシェルにワイルドカード修飾子を追加して動作を一時的に変更したりできます。*がドットファイルと一致するかどうかを制御するためのbashのglobbing設定は何ですか?詳細については。

おすすめ記事