Когда следует использовать ~ (тильда) во время навигации по командной строке?

Довольно глупо, когда дело доходит до linux, и я пытаюсь понять навигацию с помощью командной строки. Я могу перемещаться назад и вперед из своей домашней папки и папок внутри довольно легко с этим:

cd ~/Documents/

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

chance@asus:~/Documents$ cd ~/xmr-stak-cpu-1.3.0-1.5.0 bash: cd: /home/chance/xmr-stak-cpu-1.3.0-1.5.0: No such file or directory

Я смущен, потому что мне нужно использовать «~» для доступа к документам, но я не могу перемещаться в следующую папку в документах.

4
задан 3 November 2017 в 11:42

3 ответа

Тильда (~) является короткой для вашего домашнего каталога (например, переменной окружения $HOME). Вы можете запустить echo ~, чтобы убедиться сами. В вашем случае вы увидите /home/chance.

Абсолютный путь 1 каталога, к которому вы хотите получить доступ, - ~/Documents/xmr-stak-cpu-1.3.0-1.5.0, поэтому, если вы хотите, вы можете cd прямо там, и это будет работать независимо от того, где вы находитесь:

cd ~/Documents/xmr-stak-cpu-1.3.0-1.5.0

Если вы уже находитесь в ~/Documents, вы можете использовать абсолютный путь 1 :

cd xmr-stak-cpu-1.3.0-1.5.0

Или, более подробно, вы можете использовать ./ для ссылки на текущий каталог:

cd ./xmr-stak-cpu-1.3.0-1.5.0

Также обратите внимание, что если вы в настоящий момент находитесь в ~, там - это другой относительный путь:

cd Documents/xmr-stak-cpu-1.3.0-1.5.0

Сноски:

Из Википедии абсолютные пути относительно относительных путей: абсолютный или полный путь указывает на тот же местоположение в файловой системе, независимо от текущего рабочего каталога. Для этого он должен включать корневой каталог. Напротив, относительный путь начинается с некоторого заданного рабочего каталога, избегая необходимости в предоставлении полного абсолютного пути.
8
ответ дан 22 May 2018 в 16:51

Тильда (~) является короткой для вашего домашнего каталога (например, переменной окружения $HOME). Вы можете запустить echo ~, чтобы убедиться сами. В вашем случае вы увидите /home/chance.

Абсолютный путь 1 каталога, к которому вы хотите получить доступ, - ~/Documents/xmr-stak-cpu-1.3.0-1.5.0, поэтому, если вы хотите, вы можете cd прямо там, и это будет работать независимо от того, где вы находитесь:

cd ~/Documents/xmr-stak-cpu-1.3.0-1.5.0

Если вы уже находитесь в ~/Documents, вы можете использовать абсолютный путь 1 :

cd xmr-stak-cpu-1.3.0-1.5.0

Или, более подробно, вы можете использовать ./ для ссылки на текущий каталог:

cd ./xmr-stak-cpu-1.3.0-1.5.0

Также обратите внимание, что если вы в настоящий момент находитесь в ~, там - это другой относительный путь:

cd Documents/xmr-stak-cpu-1.3.0-1.5.0

Сноски:

Из Википедии абсолютные пути относительно относительных путей: абсолютный или полный путь указывает на тот же местоположение в файловой системе, независимо от текущего рабочего каталога. Для этого он должен включать корневой каталог. Напротив, относительный путь начинается с некоторого заданного рабочего каталога, избегая необходимости в предоставлении полного абсолютного пути.
8
ответ дан 18 July 2018 в 04:01

Тильда (~) является короткой для вашего домашнего каталога (например, переменной окружения $HOME). Вы можете запустить echo ~, чтобы убедиться сами. В вашем случае вы увидите /home/chance.

Абсолютный путь 1 каталога, к которому вы хотите получить доступ, - ~/Documents/xmr-stak-cpu-1.3.0-1.5.0, поэтому, если вы хотите, вы можете cd прямо там, и это будет работать независимо от того, где вы находитесь:

cd ~/Documents/xmr-stak-cpu-1.3.0-1.5.0

Если вы уже находитесь в ~/Documents, вы можете использовать абсолютный путь 1 :

cd xmr-stak-cpu-1.3.0-1.5.0

Или, более подробно, вы можете использовать ./ для ссылки на текущий каталог:

cd ./xmr-stak-cpu-1.3.0-1.5.0

Также обратите внимание, что если вы в настоящий момент находитесь в ~, там - это другой относительный путь:

cd Documents/xmr-stak-cpu-1.3.0-1.5.0

Сноски:

Из Википедии абсолютные пути относительно относительных путей: абсолютный или полный путь указывает на тот же местоположение в файловой системе, независимо от текущего рабочего каталога. Для этого он должен включать корневой каталог. Напротив, относительный путь начинается с некоторого заданного рабочего каталога, избегая необходимости в предоставлении полного абсолютного пути.
8
ответ дан 24 July 2018 в 17:59
  • 1
    «~ (тильда) в командной строке всегда понимается как ссылка на домашний каталог пользователя,« только слово »первоначально в некотируемых строках, а не« всегда ». & quot; Если вы напишете foo ~/one --arg=~/two, то foo будут видеть аргументы /home/chance/one и --arg=~/two. Высказывание «всегда» может вызвать много путаницы; люди все это время укушены. – wchargin 3 November 2017 в 16:07
  • 2
    @wchargin хороший момент, я обновлю это. – Sergiy Kolodyazhnyy 3 November 2017 в 16:28
  • 3
    Если у вас есть другой пользователь, давайте назовем его Луи с именем пользователя louis, вы также можете обратиться к своему домашнему каталогу , используя cd ~ louis / Documents, чтобы перейти в его «Документы». папке и т. д. Это может быть очень полезно в зависимости от настройки. – Haakon Løtveit 3 November 2017 в 17:52
  • 4
    Эй, ребята. Я отредактировал свой ответ, чтобы дать более формальное объяснение. Я, вероятно, добавлю еще немного позже, но дайте мне знать, как это выглядит до сих пор. – Sergiy Kolodyazhnyy 3 November 2017 в 20:30

Другие вопросы по тегам:

Похожие вопросы: