1

Мне было интересно узнать о простом событии, которое произошло во время установки менеджера версий узлов на моем 64-битном веб-сервере Amazon Linux 2014.09. Когда я выполнил этот скрипт установки

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

NVM установлен на мою файловую систему в ~/ .nvm/

Каково значение ~/.nvm по сравнению с ~/nvm? Конкретно, что значит «. значит до нвм?

Это особенно важно, потому что когда я выполняю "ll" в папке ~/, я не вижу никаких файлов. Однако когда я запускаю cd ~/ .nvm, я попадаю в папку ~/ .nvm.

Кроме того, для того, чтобы nvm работал в терминале, мне нужно было "найти" файл nvm.sh следующим образом.

source ~/.nvm/nvm.sh

Чего добилась эта исходная команда?

Примечание: все работает, это просто любопытство, которое я хотел бы понять лучше, чтобы я чувствовал себя более комфортно с настройками сервера и т.д.

Огромное спасибо!

1 ответ1

3

Персонаж . в начале имя файла делает его скрытым.
Чтобы увидеть скрытый файл из оболочки, вы можете выполнить ls -a (или ls -A).

Обратите внимание на различия:

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

source (или .) - это внутренняя команда bash . Вы можете получить доступ к их определению с help .

С помощью type команды вы можете понять, является ли команда встроенной оболочкой или нет.

Например, команда type source /bin/ls ответит

источник - встроенная оболочка
/bin /ls is /bin /ls

Затем вы можете запросить в системе информацию о командах соответственно с help или man .


Из help source вы можете прочитать

источник: имя файла источника [аргументы]
Выполнять команды из файла в текущей оболочке. Чтение и выполнение команд из FILENAME в текущей оболочке. Записи в $ PATH используются для поиска каталога, содержащего FILENAME. Если предоставляются какие-либо аргументы, они становятся позиционными параметрами при выполнении FILENAME.

От man ls

-a, --all
не игнорируйте записи, начинающиеся с .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .