我是一名新手用户,我正在尝试安装 Oracle Java。该过程要求我访问/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
帮助?
答案1
有两种方法可以指定路径。
绝对路径
绝对路径总是以 开头/
。这意味着路径规范的起点是固定的。无论您的当前的位置是,绝对路径将始终指向同一位置。唯一的例外是当您~
在开始时使用 shell 快捷方式(例如 )时,shell 将替换~
为通常是绝对您的主目录的路径。尽管它看起来不像~/bin
以 开头/
,但当 shell 呈现其最终形式时,它将以 开头/
。
相对路径
相对路径从不以 开头/
。它们的起点是当前目录,因此最终到达的位置取决于您从哪里开始。它们可以从任何子目录开始。此外:
- 您可以使用
.
和..
来引用当前目录和父目录。您还可以使用这些之内绝对路径,只是不在开始处(/foo/../bar
与 相同/bar
,并且都是绝对路径,但../foo
不是绝对的)。 - 您可以使用名为 (通常为 unset)的设置(环境变量)
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
主目录中指定的目录。在这种情况下,路径是绝对路径,但由于 shell在对其进行操作~
之前会扩展cd
它,因此不同的用户最终会到达不同的位置。
答案2
您不需要在开始/
时使用 while at/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
),然后点击Tab,cd java/
就会打印出来。
此外,您还可以在任何地方使用绝对路径:
cd /usr/local/java
/
文件路径开头的总是指向文件的根目录文件系统层次结构。由于没有名为的文件,因此/java
您收到/java/: No such file or directory
错误消息。