Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

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

#linux #bash #unix

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

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


Ответы

Ответ 1



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

Комментариев нет:

Отправить комментарий