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

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

问题描述:

当我使用 cp -r source dest, 时,忽略.gitIgnore或任何.xyz中的点文件。当我使用 cp -r source/.xyz dest, 然后它们被复制。哪个选项与cp可以复制包括点文件在内的所有文件,同时使用通配符*?在bash中,cp在使用通配符时会复制点文件?我应该使用哪一个选项

您可以使用cp一样-r通配符。[^。] *

那是因为你的bash是建立在无视隐藏的文件和cp命令只是不得到隐藏的论据。这就是它应该如何工作.. :)

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

如果你想包括在cp命令取消隐藏目录,你可以试试下面的命令

cp -r source/. destination/ 

注意.在源端。这包括源中的所有文件和目录,包括隐藏文件和目录。

或者

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

x{.,}y被转换为x.yxy。你的情况,这将是source/.*source/*

+0

谢谢!除了第一个选项外,您的所有选项都可以工作:'cp source /*.* destination /'。它没有复制点文件。 – user1782328