如何使用 * 来包含点文件

How to use * to include even dotfiles

目前我的示例代码看起来像

git clone repo/ ./tmp
mv ./tmp/* .

使用 * 时不包含点文件

如何使用 *

包含点文件

简而言之,你不能。文件通配 (*) 不包括点文件,因此您需要修改 shell 的代码以支持该行为(或者更有可能拒绝支持现有行为),你可能不会做,你绝对不想做,因为每个目录中都有两个点文件,..., 那会给你带来麻烦的。

相反,您需要单独移动文件,例如:

mv ./tmp/* .
mv ./tmp/.??* .

第二行 globs 不只是当前目录或父目录的点文件。

如果您(无论出于何种原因)需要这在一个命令中发生或者有更复杂的标准可以使用,您可能需要调查 find's -exec 参数,它允许您 运行 一个针对几乎所有由时间、内容、名称或各种其他特征生成的文件列表的命令。