“cd ../” 和 “cd /..” 有什么区别?

“cd ../” 和 “cd /..” 有什么区别?

这两个命令是什么意思呢?

cd ../
cd /..

第一个命令导致我进入树上的两个目录,第二个命令导致我进入根目录。为什么会发生这种情况?

答案1

/结尾目录/文件夹的名称是选修的。大多数情况下,在目录名中包含或省略最后的斜杠不会改变命令的效果。

所以cd ../等同于cd ..

不存在的路径开始带有 的/是相对路径;它们是相对于当前目录

每个目录都有两个特殊条目:

  • 名为 的目录条目.,解析为目录本身
  • 一个名为的目录条目..,解析为目录的父母(即包含该目录的目录)

因此cd ../cd ..目录更改为父母当前目录。因此,如果您从 开始/home/fazlan并运行cd ..cd ../,那么您最终将得到/home

相反/..绝对路径(尽管不常见)。/是文件系统根目录——如果你沿着目录层次结构一直向上走,就会到达这个目录。(使用相同的父母孩子隐喻,我们说的/祖先文件系统中的所有内容。

因为..表示“该目录的父目录”,/表示“文件系统的顶部”,/..表示“文件系统顶部的父目录”。

但是,谈论目录意味着什么包含 /?嗯,/是个例外。因为没有目录包含它,我们说 的/父级是其本身。因此,在 中/../因此,/..与 相同/

这就是为什么cd ../会将您从起始位置向上一级目录,而cd /..会将您带到最顶层。 更优雅且更易读的执行这些操作的方式分别是cd ..cd /

答案2

第一个是相对路径。第二个是绝对路径。

该参数中的 .. 运算符表示向上移动一位。

斜线不在最前面时,表示划分子目录名。

斜线在前面表示“这是绝对路径。从根目录开始。” .. 被丢弃,因为您无法再进一步退出。(曾经有很多这样的命令允许您中断 chroot)

答案3

单个点 (.) 表示当前目录。事实上,如果你执行 a,cd .它会将你置于当前目录中(这似乎什么也不做)。如果你要将某些内容从 /dir1 复制到当前目录,你可以这样做:

cp /dir1/somefile.txt .

执行 acd ..会将您带上一级目录。A 的cd ../作用相同。如果您想上一级级别,你需要在末尾添加两个点,如下所示:

cd ../..

要返回根目录,您可以执行cd /。现在假设我执行了以下命令:

cd /dir1/dir2/dir3/..

这会将我置于 /dir1/dir2 目录中,因为(正如我们上面所确定的)指示..它向上一级。因此它转到 dir3,然后向上。

通过调用 a,cd /..您告诉它转到根目录/,然后向上一级,但它无法做到。因此,它实际上让您停留在根目录中。

相关内容