.??*はシェルコマンドで何を意味しますか?

.??*はシェルコマンドで何を意味しますか?

これ次のようなtarすべてのファイルとフォルダに「ドット」を撮るコマンド:

tar -zcvf dotfiles.tar.gz .??*

私はおなじみ一般的な表現しかし、どのように説明するのかわかりません.??*。リストされたファイルを実行してみls .??*ました。この正規表現にexampleで始まるフォルダ内のすべてのファイルがtree .??*含まれるのはなぜですか?.

ベストアンサー1

ワイルドカード正規表現ではありません。一般的に言えば、シェルはglobとして引用されていないコマンドラインに入力したすべての内容を解釈しようとします。シェルは正規表現をまったくサポートする必要はありません(ただし、より高度な最新のシェルは実際には構文の正規表現一致演算=~子などの正規表現をサポートしますがbash [[)。

これは.??*球です。これはリテラルポイントで始まり、.その後に2つの(必ずしも同じではありません)文字、??その後に等しい正規表現、[^/]*つまりゼロ文字以外の文字が続くファイル名と一致します/

シェルパス名拡張(「globbing」のフルネーム)の詳細については、以下を参照してください。POSIX仕様

おすすめ記事