Bashのドットの重要性と、それがアスタリスクとどのように異なるかを理解しようとしています。誰かが詳しく説明してもらえますか?たとえば、cp -ar /foo/. /foo2/
とcp -pr /foo/* /foo2/
の違いは何ですか
ドット(.
)は、ディレクトリ自体と同じディレクトリ内の.
ディレクトリです(ls -la /foo
で表示されます)。したがって、foo/.
を他の場所にコピーすると、foo
自体をコピーせずに、foo
の下のすべてのツリーを効果的にコピーできます(これはfoo2/.
にコピーします。これはと同じです。 foo2
)。
/foo/*
は、シェルによって/foo
内の隠されていないファイルとディレクトリのリストに展開されるため、/foo
の下の同じディレクトリ構造も/foo2
にコピーされます。 dotfiles/dotdirsを除いて。事実上、cp
は(潜在的に)多くの引数を受け取ります。リストが大きすぎると、cp
の実行が失敗する可能性さえあります。