为什么在 /home 中`ls` 返回 `valo`,而`cd /valo` 返回 `没有这样的文件或目录`?

为什么在 /home 中`ls` 返回 `valo`,而`cd /valo` 返回 `没有这样的文件或目录`?

为什么文件夹可能同时存在但又不存在呢?

valo@Castor:~$ cd /home
valo@Castor:/home$ cd /valo
bash: cd: /valo: No such file or directory
valo@Castor:/home$ ls
valo
valo@Castor:/home$ cd /valo
bash: cd: /valo: No such file or directory
valo@Castor:/home$

终端图片

答案1

评论中建议但没有说明的是,/名称前输入的字符valo会使系统将该目录查找为文件系统valo的子目录或根目录。/

关于该cd命令,需要记住的是,它会根据输入的路径查找“相对”路径或“绝对”路径。当输入的路径以 开头时,/它会查找绝对路径,这意味着它从文件系统的根目录开始。当字符是其他任何字符时,它会查找从当前位置开始的路径。

在您的示例中,当您在 中/home键入时,它会查找(filesystem root)cd /valo的绝对路径,但该路径不存在。如果您键入 ,它会在当前目录中查找。如果该目录在目录中,它会找到它。/valocd valovalo/home

答案2

您可以使用一些基本命令在终端上导航目录:

cdcd ~将带你到同一个地方——你的用户的主目录

pwd将打印当前目录,这也会在命令行提示符中列出。

如果你在目录中/home输入ls并看到

valo@Castor:/home$ ls 
valo

那么你知道valo是当前目录的子目录。要切换到该目录,请键入以下命令:

cd valo

一些等效的命令是cd ./valocd /home/valo

有时需要这些其他的方式来指定子目录。

相关内容