Я попробовал cd . ~
в терминале и я видел тот же результат как тогда, когда я ввожу cd ~ .
Я хочу знать, как это сделано. Или лучше сказать, каков приоритет аргументов, который прибывает после команды?
Вы видели тот же результат, потому что я уверен, что Вы тестируете те команды из своего корневого каталога, который является /home/your_username
эквивалентный с ~
- посмотрите Расширение Тильды, или $HOME
переменная среды. Для тестирования правильно необходимо использовать:
cd / ; cd . ~
и:
cd / ; cd ~ .
В целом, если Вы используете:
cd first_directory second_directory
Вы измените оболочку рабочий каталог на first_directory
, не к second_directory
, так второй аргумент в cd
команда проигнорирована (см. также help cd
понять лучше).
И .
(точка) в этом случае эквивалентна с путем оболочки текущий рабочий каталог, которым дают pwd
команда (см. ярлык Командной строки для текущего каталога, подобного ~ для корневого каталога?).
Так cd . ~
эквивалентно с cd .
который эквивалентен с cd $(pwd)
и cd ~ .
эквивалентно с cd ~
который эквивалентен с cd $HOME
.
Это дает тот же результат, потому что Вы выполняете их из своего корневого каталога. Попытайтесь переместиться в/tmp для наблюдения другого поведения.
Только первый позиционный параметр cd
команда принята во внимание:
cd: usage: cd [-L|[-P [-e]]] [dir]