当我尝试在Mac上将文件从一个目录复制到另一个目录时,我使用以下命令:
须藤cp -r dir1 / * dir2 /
乍一看,它似乎运作良好。但是,它总是跳过.git,.gitignore和.htaccess之类的文件。这是为什么?这些文件是否具有某种特权状态?
如果有帮助,dir1是以下结果
git克隆
我之前运行的命令。
在命令中:
cp -r dir1/* dir2/
壳展开dir1/*
并将结果传递给cp
。该*
模式与前导不匹配.
,即它与通常可见的文件匹配。您可以使用模式dir1/.*
来匹配以开头的条目.
,但是cp
有更好的方法。来自man cp
:
如果source_file指定目录,则cp复制该目录以及此时连接的整个子树。如果source_file以/结尾,则复制目录的内容,而不是目录本身。
因此,您追求的是:
cp -r dir1/ dir2/