bash 命令中的点有什么意义?它与星号有何不同?

bash 命令中的点有什么意义?它与星号有何不同?

我试图理解 bash 中点的重要性以及它与星号的不同之处。有人可以详细说明一下吗?例如,cp -ar /foo/. /foo2/和之间有什么区别cp -pr /foo/* /foo2/

答案1

点(.)只是.目录中的目录,与目录本身相同(ls -la /foo将向您显示)。因此,如果您foo/.在其他地方复制,您将有效地复制下面的所有树foo,而不复制foo其自身(您将其复制到foo2/.与 相同的位置foo2)。

/foo/*由 shell 扩展到 中的非隐藏文件和目录列表/foo,因此它也会将相同的目录结构复制/foo到 中/foo2,但 dotfiles/dotdirs 除外。实际上,cp会收到(潜在的)许多争论。如果列表太大,甚至可能导致执行cp失败。

相关内容