我是 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$
答案1
GNU/Linux 的文件系统就像一棵树,只不过根在最顶端。:-) 因此你有如下结构:
/
bin/
home/
sharon/
Documents/
Downloads/
fileA.txt
fileB.jpg
usr/
var/
如果您想在树内移动,一种选择是使用相对路径。如果您在 中/home/sharon
,则键入cd Downloads
将有效,因为 Downloads 是当前目录的直接子目录。如果您在子文件夹中Documents
并想将目录 ( cd
) 更改为Downloads
,则必须向上移动 ( ..
) 然后转到Downloads
。因此正确的命令应该是cd ../Downloads
。
您也可以输入绝对路径。因此Downloads
文件夹是子文件夹的子文件夹sharon
是子文件夹的子文件夹home
...(您明白了吧 :-))因此,您也可以输入cd /home/sharon/Downloads
文件系统中的任何位置。
~
始终指当前用户的主目录(/home/sharon
就您而言)。如果您输入,cd ~/Downloads
您将进入您的Downloads
文件夹。.
指的是当前目录,所以cd ./Downloads
大致相当于cd Downloads
。..
意思是“父目录”。/
文件路径开头指的是根目录。
下一个好东西是 tab 扩展。如果你输入cd ~/Dow
Tab(最后按下 Tab 键),bash 会自动将其扩展为cd ~/Downloads
。
正如其他人所说,GNU/Linux 区分大小写。因此,输入Home
,hOme
或 时会home
有所不同。此外,我希望您现在明白/home
和之间存在差异home
。第一个是绝对地址,而最后一个是相对于当前目录的地址。
答案2
sharon@sharon:~$ cd Home
bash: cd: Home: No such file or directory
小变音符 ~ 表示您已位于 /home/sharon 目录中。当您要求“cd Home”时,终端会查找 /home/sharon/Home。但找不到。
sharon@sharon:~$ cd /Home
bash: cd: /Home: No such file or directory
现在,你要求,给定前导斜杠,转到当前位置的上级目录;即 /home/Home。没有。
sharon@sharon:~$ cd Documents
sharon@sharon:~/Documents$
成功!
sharon@sharon:~/Documents$ cd /Downloads
bash: cd: /Downloads: No such file or directory
我不太清楚这到底在哪里。如果您想从 /home/sharon/Documents 更改为 /home/sharon/Downloads,请尝试:
cd ~/Downloads
如果您想直接进入主目录,即 /home/sharon,只需执行以下操作:
cd
您也可以使用
cd ..
您还可以打印您正在使用的目录(打印工作目录)
pwd
答案3
该命令会告诉您原因:没有这样的目录。
文件名区分大小写,所以是 /home,而不是 /Home。如果没有前导斜杠,则假定它是相对于当前目录的,而 Downloads 目录不在 ~/Documents 中,也不在 / 中,而是在您的主目录中,这~
是快捷方式,因此它是 ~/Documents。
答案4
我必须回答这个问题,因为我无法对答案发表评论-.-
前导斜杠是什么意思? – n00b
这意味着您谈论的是目录而不是文件。文件不必像在 Windows 中那样具有文件结尾,因此它~/thisIsAFile
应该是主目录中的文件,而~/thisIsAFile/
应该是目录/文件夹。
./ 是什么意思? – n00b
这意味着您要访问的文件位于您当前的目录中。
其他有用提示:
你可以使用
cd ..
并且您可以通过以下方式获取您所在的路径(打印工作目录)
pwd