在终端(Mac)中复制目录之间的所有文件

8
当我试图在 Mac 上从一个目录复制文件到另一个目录时,我使用以下命令:
sudo cp -r dir1/* dir2/
乍一看,它似乎运行良好。然而,它总是跳过像 .git、.gitignore 和 .htaccess 这样的文件。为什么会这样呢?那些文件有某种特权状态吗?
如果有帮助的话,dir1 是我之前运行 git clone 命令后得到的结果。
2个回答

17
在命令中:
cp -r dir1/* dir2/

Shell会扩展dir1/*并将结果传递给cp*模式不会匹配前导.,也就是说它匹配通常可见的文件。 您可以使用模式dir1/.*来匹配以.开头的条目,但对于cp来说有更好的方法。来自man cp

  

如果source_file指定一个目录,cp将复制该目录和连接在该点处的整个子树。 如果source_file以/结尾,则复制目录的内容而不是目录本身。

所以您需要的是:

cp -r dir1/ dir2/

1

如果您在命令中将 *(星号)替换为 .(点),则可以包括隐藏的文件和文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接