为什么节点版本管理器安装到 ~/.nvm 而不是仅仅 ~/nvm 以及 Linux 中的“source”是什么?

为什么节点版本管理器安装到 ~/.nvm 而不是仅仅 ~/nvm 以及 Linux 中的“source”是什么?

我在 64 位 Amazon Linux 2014.09 Web 服务器上安装节点版本管理器时发生了一个简单的事件。当我执行此安装脚本时

curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash

NVM 安装到我的文件系统 ~/.nvm/

~/.nvm 与 ~/nvm 相比有何意义?具体来说,nvm 前面的“ . ”是什么意思?

这尤其重要,因为当我在 ~/ 文件夹中执行“ ll ”时,我看不到任何文件。但是,当我执行 cd ~/.nvm 时,我会进入 ~/.nvm 文件夹。

另外,为了让 nvm 在终端中工作,我必须以这种方式“获取” nvm.sh 文件

source ~/.nvm/nvm.sh

这个源命令完成了什么任务?

注意:一切正常,这只是出于好奇,我想更好地理解,以便我对服务器配置等感到更舒服。

非常感谢!

答案1

.文件名开头的字符使它.
看到隐藏文件从 shell 中你可以执行ls -a (或ls -A)。

注意差异:

 .myfile.sh       # hidden file
 .   myfile.sh    # source the file myfile.sh

source(或.)是 的内部命令bash。您可以使用 访问它们的定义help

使用命令type你可以了解某个命令是否是内置 shell或不。

例如该命令 type source /bin/ls将回答

源是 shell 内置的
/bin/ls 是 /bin/ls

help然后您可以用或分别向系统询问有关命令的信息man


help source可以阅读

源:源文件名 [参数]
在当前 shell 中执行来自文件的命令。在当前 shell 中读取并执行来自 FILENAME 的命令。$PATH 中的条目用于查找包含 FILENAME 的目录。如果提供了任何参数,它们将成为执行 FILENAME 时的位置参数。

man ls

-a、--全部
不要忽略以...开头的条目

相关内容