如何在终端中的目录之间导航?

n00*_*00b 28 command-line directory

我是 Linux 和 Ubuntu 的新手,并尝试更改文件夹/目录时遇到了一些困难。

有人可以解释为什么以下命令无法更改为所需的目标文件夹/目录吗?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$
Run Code Online (Sandbox Code Playgroud)

qbi*_*qbi 40

文件系统是 GNU/Linux 就像一棵树,除了根在顶部。:-) 所以你有这样的结构:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/
Run Code Online (Sandbox Code Playgroud)

如果要在树内部移动,一种选择是使用相对路径。如果您在 中/home/sharon,则键入cd Downloads将起作用,因为下载是您当前目录的直接子级。如果您在子文件夹中Documents并想将目录 ( cd)更改为Downloads,则必须向上 ( ..) 再到Downloads。所以正确的命令是cd ../Downloads.

您也可以输入绝对路径。所以这个Downloads文件夹是一个子文件夹,sharon它的子文件夹home是……(你明白了:-))所以你也可以输入cd /home/sharon/Downloads文件系统中的任何位置。

  • ~总是指当前用户的主目录(/home/sharon在你的情况下)。如果您输入,cd ~/Downloads您将进入您的Downloads文件夹。

  • .指的是当前目录,所以cd ./Downloads大致相当于cd Downloads.

  • .. 表示“父目录”。

  • / 开头的文件路径指的是根目录。

下一件好事是标签扩展。如果您输入cd ~/DowTab(最后按 Tabulator 键),bash 会自动将其扩展为cd ~/Downloads.

正如其他人所说的 GNU/Linux 区分大小写。因此,如果您输入Home,hOme或会有所不同home。此外,我希望您现在看到/home和之间存在差异home。第一个是绝对地址,而最后一个是相对于您的当前目录。

  • @n00b 如果您发现此答案有帮助,您可以通过单击它左侧的 V 来“接受”它。 (2认同)

chi*_*555 8

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
Run Code Online (Sandbox Code Playgroud)

小 cedilla ~ 表示您已经在 /home/sharon 目录中。当您询问 'cd Home' 时,终端会查找 /home/sharon/Home。空无一人。

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
Run Code Online (Sandbox Code Playgroud)

现在您要求,给定前导斜杠,转到当前位置上方的目录;即 /home/Home。空无一人。

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$
Run Code Online (Sandbox Code Playgroud)

成功!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
Run Code Online (Sandbox Code Playgroud)

我不太确定这到底是哪里。如果您想从 /home/sharon/Documents 更改为 /home/sharon/Downloads,请尝试:

cd ~/Downloads
Run Code Online (Sandbox Code Playgroud)

如果您想直接进入您的主目录,即 /home/sharon,只需执行以下操作:

cd
Run Code Online (Sandbox Code Playgroud)

你也可以退后一步

cd ..
Run Code Online (Sandbox Code Playgroud)

您可以打印您正在使用的目录(打印工作目录)

pwd
Run Code Online (Sandbox Code Playgroud)

  • 前导斜杠表示相对于根目录的路径,而不是当前目录上方的路径。那将是`../` (2认同)

psu*_*usi 3

该命令告诉你原因:没有这样的目录。

文件名区分大小写,因此是 /home,而不是 /Home。如果没有前导斜杠,则假定相对于当前目录,并且 Downloads 目录不在 ~/Documents 中,也不在 / 中,而是在您的主目录中,这是一个~快捷方式,因此它是 ~/文件。