Когда использовать предыдущую наклонную черту в путях? (например, для команды 'CD')

Я - неопытный пользователь, и я пытаюсь установить Java Oracle. Процесс зовет меня к доступу /usr/local/java, но вот проблема. Я добираюсь до /usr/local, затем это - сообщение, которое я получаю:

leonard@leonard-MT6452:/usr/local$ dir
bin  etc  games  include  java  lib  man  sbin  share  src

leonard@leonard-MT6452:/usr/local$ cd /java/
bash: cd: /java/: No such file or directory

leonard@leonard-MT6452:/usr/local$ rm -r ~/java
rm: cannot remove ‘/home/leonard/java’: No such file or directory

Помощь?

4
задан 10 April 2015 в 02:35

2 ответа

Существует два способа, которыми может быть указан путь.

Полные пути

Полные пути всегда запускаются с a /. Это означает, что начальная точка спецификации пути фиксируется. Неважно, где Ваше текущее местоположение, полный путь будет всегда указывать на то же местоположение. Единственное исключение - при использовании ярлыка оболочки, такой как ~, в запуске, где оболочка заменит ~ с тем, что обычно является полным путем Вашего корневого каталога. Даже при том, что это не похоже ~/bin запускается с a /, когда оболочка представит свою конечную форму, она будет иметь продвижение /.

Относительные пути

Относительные пути никогда не запускаются с /. Их начальная точка является текущим каталогом, поэтому где Вы заканчиваете, зависит от того, где Вы запускаете. Они могут запустить с любого подкаталога. Кроме того:

  • Можно использовать . и .. относиться к текущему каталогу и родительскому каталогу. Можно также использовать их в полных путях, просто не в запуске (/foo/../bar совпадает с /bar, и оба - полные пути, но ../foo не является абсолютным).
  • Можно использовать установку названная (переменная среды) CDPATH (обычно сброс), специально для cd команда. Если Вы добавляете каталог к CDPATH, затем можно использовать относительный путь (не запускающийся с . или ..) к нему отовсюду с cd.

Подводить итог:

  • cd /usr/local/java будет всегда брать Вас к тому же пятну, как делает cd /usr/local/./java.
  • cd java возьмет Вас различные места в зависимости от того, где Вы и что CDPATH содержит. (Отметьте это только cd должен быть затронут CDPATH - для других команд, ./java и java должен означать то же самое.)
  • cd ./java возьмет Вас к названному каталогу java в текущем каталоге.
  • cd ../java возьмет Вас к названному каталогу java в рамках родительского каталога.
  • cd ~/java будет всегда брать Вас к названному каталогу java в Вашем корневом каталоге. В этом случае путь является полным, но потому что оболочка расширяется ~ прежде cd воздействует на него, различные пользователи закончат в различных местах.
3
ответ дан 1 December 2019 в 15:38

Вам не нужна начальная буква / в то время как в /usr/local/ перейти в /usr/local/java. Корректная команда с помощью относительного пути:

leonard@leonard-MT6452:/usr/local$ cd java/
leonard@leonard-MT6452:/usr/local/java$ pwd
/usr/local/java    

Можно также взять справку bash_completion просто введя cd j (если нет никакого другого каталога, запущенного с j) и затем Вкладка хита, cd java/ будет распечатан.

Дополнительно можно использовать полный путь отовсюду:

cd /usr/local/java

/ в начале пути к файлу всегда отсылает корневой каталог иерархии файловой системы. Как нет никакого названного файла /java Вы добирались /java/: No such file or directory сообщение об ошибке.

2
ответ дан 1 December 2019 в 15:38

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

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