Что всё-таки означает загадочный символ . в bash?

Что всё-таки означает загадочный символ . в bash?

27.03.2018 10:54:42 Просмотров 27 Источник

Почему символ . в зависимости от контекста выполняет разные задачи? Например в команде cd . он выполняет роль текущей директории, а в команде . patch/activate является аналогом команды source?

P.S наверное я дилетант, но это действительно ломает мне мозг

У вопроса есть решение - Посмотреть?

Ответы - Что всё-таки означает загадочный символ . в bash? / Что всё-таки означает загадочный символ . в bash?

Является ответом!
aleksandr barakin

27.03.2018 11:45:32

ни тот ни другой случай употребления не имеет прямого отношения к программе bash как таковой.

  • cd — это определяемая стандартом posix утилита, которая вызывается как cd каталог и служит для изменения текущего каталога для процесса оболочки, её вызвавшего (все популярные posix-совместимые оболочки реализуют её как встроенную команду). в каждом (даже «пустом») каталоге есть как минимум два компонента (в терминах стандарта posix — entries): . и ... первый из них (.) — это ссылка на сам каталог, а второй (..) — это ссылка на «родительский» (т.е., предшествующий в файловой иерархии) каталог.

    поэтому команда cd . означает: «сменить текущий каталог на него же самого», т.е., фактически, не производит никаких изменений.

  • . — это встроенная команда posix-совместимой оболочки, вызываемая как . файл и служащая для выполнения команд, содержащихся в файле, в контексте текущего процесса оболочки. подробнее см. ответ на соответствующий вопрос.

https://ru.stackoverflow.com/questions/805649/%d0%a7%d1%82%d0%be-%d0%b2%d1%81%d1%91-%d1%82%d0%b0%d0%ba%d0%b8-%d0%be%d0%b7%d0%bd%d0%b0%d1%87%d0%b0%d0%b5%d1%82-%d0%b7%d0%b0%d0%b3%d0%b0%d0%b4%d0%be%d1%87%d0%bd%d1%8b%d0%b9-%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb-%d0%b2-bash/805679#comment1274627_805679
cd . как минимум меняет значение $OLD_PWD, если я правильно помню её имя.
Закрыть X