【发布时间】:2012-07-28 09:00:07
【问题描述】:
Linux 路径有什么不同
/etc/passwd
../etc/passwd
/../etc/passwd
这些路径相同吗?
【问题讨论】:
Linux 路径有什么不同
/etc/passwd
../etc/passwd
/../etc/passwd
这些路径相同吗?
【问题讨论】:
第一个是绝对路径。任何以 / 开头的路径都是绝对路径,它包含到达文件所需的所有目录。
第二个是相对路径。 '..' 是一个特殊目录,表示当前目录的父目录。例如,如果您当前在 /etc/X11 文件夹中,../etc/passwd 将意味着上一个文件夹(到 /etc)并且文件 passwd 将在那里。
最后一个很奇怪。根目录 '/' 没有父目录,但里面仍然有 '..' 文件夹。如果你在 '/' 内对 .. 进行 'cd' ,则不会发生任何事情,所以这与第一个选项 (/etc/passwd) 的工作方式几乎相同,但看起来相当混乱。
【讨论】:
/etc/passwd 与最近的 Linux 内核中的/../etc/passwd 相同。
LVS 自动将"." 和".." 的条目添加到目录中,对于"/",它们都指向"/" 的inode。
../etc/passwd 是相对路径,所以取决于进程当前的工作目录。
如果 cwd 是"/" 或"/etc",那么它们都指向同一个文件。
【讨论】:
realpath 实用程序提供给定文件的真实规范路径。
首先是绝对路径。将其视为真实的确切位置。
第二是相对的,取决于你在哪里。 如果你的当前目录是
/home/user/
那么../etc/passwd 将位于:
/home/etc/passwd
至于最后一个,没有意义,因为 / 是每个文件夹的根目录。和/home/etc/passwd基本一样
【讨论】:
..。