を使用しcp -a source/* target/てコピーすると、ほとんどのファイルとディレクトリがからsourceにコピーされtargetます。具体的には、除外されるアイテム.は、の最上位のドット()で始まるファイルですsource。
これらのファイル(またはディレクトリ)を source
apple # will be copied
banana/ # will be copied, as will all its contents
.cherry # will not be copied
を使用してコピーするcp -a source/. target/場合はsource、ドット(.)で始まるすべてのアイテムを含む、target
これらのファイル(またはディレクトリ)を source
apple # will be copied
banana/ # will be copied, as will all its contents
.cherry # will be copied
あなたが使用している場合bash、zshは、使用することができますdotglobオプションをの意味は変更する*ことが(ドットで始まるファイルやディレクトリを含むようにyashも持っているdotglobが、それは、含まれて、オプションを.して..。その使いやすさを制限グロブ展開でも参照をFIGNORE='@(.|..)'でksh93)。
興味深いことに、コンポーネントを作成しないことcp -a source/. target/が保証されています。(一方、はすでに存在するかどうかに応じて2つのことのいずれかを行います。詳細については、cpを使用してべき等の方法でフォルダーを再帰的にコピーする方法を参照してください。)target/sourcecp -a source target/target
を使用しrm -rf source/*て削除sourceすると、ドット(.)で始まらないファイルとディレクトリが削除されます。dotglobすでに述べた設定に従います。ディレクトリsource自体は削除されません。
POSIXは、最後のコンポーネントがまたはであるパスの削除を禁止しているためrm -rf source/.、他のユーザーがすでに説明したように、それを使用して削除しようとすると失敗します。最も近いものはであり、ドット()で始まるかどうかに関係なく、ディレクトリとそのすべての内容が削除されます。...rm -rf sourcesource.
It's up to the command whether that trailing dot makes any senseええと、ドットは常にそれを含むディレクトリ自体にリンクしているので../foldersource/.、述べることと何の違いもないはずで./foldersource/あり、実際には同じことを述べるための冗長な方法にすぎません。Linux / Unixファイルシステムの標準であるため、ドットまたはダブルドットを「理解」しようとするコマンドはありません。回答に記載さrmれてjimmijいるように、現在の作業ディレクトリの削除を単に拒否します。また、./OPが../ある間は、すべての例で使用していることに注意してください。多少の(大きな)違い。