回答:
免責事項:この回答は特にBashを扱っていますが、その多くはグロブパターンに関する質問に当てはまります!
スター文字(*)はワイルドカードです。代わりになる特定の文字セットがあり、ドット(.)である最初の文字はそれらの1つではありません。これは、Unixファイルシステムがどのように機能するかという理由だけで特別なケースであり、ドットで始まるファイルは「隠されている」と見なされます。つまり、、などのツールcpはls、明示的に指示されない限り、それらを「表示」しません。
まず、サンプルデータを作成しましょう。
$ mkdir .dotdir{1,2} regdir{1,2}
$ touch .dotfile{1,2} regfile{1..3}そのため、次のようになりました。
$ tree -a
.
|-- .dotdir1
|-- .dotdir2
|-- .dotfile1
|-- .dotfile2
|-- regdir1
|-- regdir2
|-- regfile1
|-- regfile2
`-- regfile3それでは、いくつかのゲームをプレイしましょう。このコマンドechoを使用して、特定のワイルドカード(*)が特定のコマンドに対してどのようになるかをリストできます。
$ echo *
regdir1 regdir2 regfile1 regfile2 regfile3
$ echo reg*
regdir1 regdir2 regfile1 regfile2 regfile3
$ echo .*
. .. .dotdir1 .dotdir2 .dotfile1 .dotfile2
$ echo .* *
. .. .dotdir1 .dotdir2 .dotfile1 .dotfile2 regdir1 regdir2 regfile1 regfile2 regfile3
$ echo .dotdir*
.dotdir1 .dotdir2このコマンドshopt -s dotglobを使用しての動作を変更し、*同様のファイルに加えてregfile1一致させることもできます.dotfile1。
bashマニュアルページからの抜粋
dotglob If set, bash includes filenames beginning with a `.' in the results 
        of pathname expansion.例:
$ shopt -s dotglob
$ echo *
.dotdir1 .dotdir2 .dotfile1 .dotfile2 regdir1 regdir2 regfile1 regfile2 regfile3次のコマンドを使用して、この動作を元に戻すことができます。
$ shopt -u dotglob
$ echo *
regdir1 regdir2 regfile1 regfile2 regfile3あなたはcp、パターン*に一致するすべてのファイルをコピーしたいと言っていますが、ファイルはありません。
$ cp foo/.* .または、fooフォルダ内のすべてのものが必要な場合は、これを行うことができます。
$ cp foo .または、明示的にすることができます:
$ cp foot/.* foo/* .のブレース展開を使用したよりコンパクトなフォームbash:
$ cp foo/{.,}* .いつでもこのechoトリックを使用して、提案されたファイルパターンを確認できます(これは、星が含まれているものの仮名です)。
$ echo {.,}*
. .. .dotdir1 .dotdir2 .dotfile1 .dotfile2 abc regdir1 regdir2 regfile1 regfile2 regfile3あなたは、ファイル+他のディレクトリのディレクトリをコピーしようとしているところで場合は、通常だと、再帰的にこれを行うにしたい-Rスイッチがにcp:
$ cp -R foo/. .shopt -s dotglob、echo *:その後、与え.dotdir1 .dotdir2 .dotfile1 .dotfile2 regdir1 regdir2 regfile1 regfile2 regfile3
                    cp -r foo .あなたはおそらくあなた自身cpをコピーすることを拒否するので、通常は機能しません。(これは標準的なものです)。foocp -R foo/. .cp -R
                    zsh含まれていない.と..の展開に.*。でzsh、パターンが一致しない場合、コマンドは中止されます(かなり賢明に再び)。したがって、一般的な場合、cp foo/{,.}* .非表示または非表示のファイルがない場合は失敗します。
                    ではzsh、一般的な方法は、使用することですD グロブ修飾子を([D] OTファイルをインクルードします):
cp foo/*(D) .ありまたはなしでD、zsh globには決して(予想どおり).も含まれないことに注意してください..。
すべてのファイルとディレクトリをある場所から別の場所にコピーしたい場合は、標準rsyncコマンドを使用できます。上記の例では:
mkdir foo && touch foo/.test
rsync -a foo/ .はfoo、隠しファイルや隠しディレクトリなど、のすべての内容を再帰的に現在のディレクトリにコピーします。末尾のスラッシュは、foo/rsyncにとって重要です。これを使用すると、の内容のみfooがコピーされ、それを使用しない場合もrsyncがコピーさfooれます。例えば:-
mkdir src && mkdir dest && touch src/.test
rsync -a src  dest    // copies 'src' contents to 'dest/src'
rsync -a src/ dest    // copies 'src' contents to 'dest' マシン間でのコピーなど、rsyncを微調整できるその他のオプションが多数あります。
dotglob変換されるglobdotsことにより、zshのための無効なオプション名ではbash。