在 bash 中,cp 在使用通配符时会复制点文件吗?我应该使用哪个选项

In bash, cp does copy dot files while using wildcard? Which option should I use

当我使用 cp -r 源目标, .gitIgnore 或任何 .xyz 中的点文件将被忽略。当我使用 cp -r 源/.xyz 目标, 然后他们被复制。 cp 的哪个选项可以在使用通配符 * 时复制包括​​点文件在内的所有文件?

在使用通配符 * 时,您也可以尝试命令 cp source/*.* destination/ 来复制所有隐藏文件。

如果您想在 cp 命令中包含未隐藏的目录,您可以尝试以下命令

cp -r source/. destination/

请注意源代码末尾的 .。这包括源中的所有文件和目录,包括隐藏的。

cp -r source/{.,}* destination/

x{.,}y转换为x.yxy。在您的情况下,它将是 source/.*source/*

你可以使用通配符 cp -r .[^.]*

那是因为您的 bash 被构建为忽略隐藏文件,而 cp 命令只是不获取隐藏参数。这就是它应该如何工作的.. :)

至于我最通用的方式:

cp -a /source/. /destination/

或者如果您在源文件夹中:

cp -a . /destination/