文件扩展是否应该在命令看到其参数之前发生?

文件扩展是否应该在命令看到其参数之前发生?

在 Bash 中,给定一个以路径名作为参数的命令,在该命令可以看到该参数的值之前,路径名参数是否会发生文件扩展?

我的问题来自我的评论关于.以下 git 命令中所指的内容:

git --git-dir=/path/to/my/repo/.git add .
git --work-tree=/a/path --git-dir=/path/to/my/repo/.git add .
git -C /path/to/my/repo add .

答案我的评论回复了,下面的评论说这.并不总是意味着我运行命令的目录。但我不明白,因为我认为文件扩展发生在命令可以看到参数值之前。

答案1

全部扩展在命令运行之前进行。命令如何解释它得到的内容完全取决于它自己。您的示例命令均未涉及任何扩展 -.不会被 shell 扩展。

git命令使用. 根据您的选项更改目录,所以.不会你的当前目录。也不会tar在以下命令中存档我的当前目录:

tar -C etc -c .

相关内容