您的位置:首页 > 其它

相对路径和绝对路径

2010-10-13 17:02 239 查看
7.1 目录与路径操作

前一章介绍了Linux树状目录的概念,接下来就要实际解决一些基本的路径问题了。这些目录的问题中,最重要的概念就是“绝对路径”与“相对路径”。

7.1.1 相对路径与绝对路径

在切换目录之前,必须要先了解一下“路径(PATH)”,什么是“相对路径”与“绝对路径”,虽然前一章已经提过一次,不过,这里还要再次强调。

前面介绍过,Linux里面的目录是“树状目录”,就是有分支的目录。假设需要在任意一个目录下切换到根目录的etc,就要使用“cd /etc”,这就是所谓的“绝对路径”,它是从根目录连续写,不论在哪一个路径执行这一个命令,都会移动到该路径。如果使用“cd etc”呢?就表示要切换到“当前这个目录下的etc目录中”,情况是不一样的。通常第一次接触Linux的用户常会搞错路径的概念。

绝对路径:路径的写法“一定由根目录 / 写起”,例如:/usr/share/doc目录。
相对路径:路径的写法“不是由 / 写起”,例如由 /usr/share/doc要到 /usr/ share/man,可以写成“cd ../man”,这就是相对路径的写法。相对路径指“相对于当前工作目录的路径”。

那么,相对路径与绝对路径有什么用处呢?假设你写了一个套件,这个套件共需要3个目录,分别是etc、bin、man,然而,由于不同的人要安装在不同的目录下,假设甲安装的目录是 /usr/local/ packages/etc、/usr/local/packages/bin及 /usr/local/packages/man,不过乙却喜欢安装在 /home/packages/etc、/home/packages/bin, /home/packages/man,如果需要用到绝对路径的话,是否很麻烦呢?是的。如此一来,每个目录下的东西就很难对应起来。这个时候相对路径的写法就特别重要了。

此外,如果你与笔者一样,喜欢将路径的名字写得很长,以便知道哪个目录是在干什么的,例如/data4/staiwan19961109/models-3/smoke目录,而另一个目录在 /data4/staiwan19961109/models-3/cctm,要从第一个到第二个目录,怎么写比较方便?当然是“cd ../cctm”。

但是,对于文件的正确性来说,“绝对路径比较好”。一般来说,笔者建议,如果是在写程序(shell scripts),务必使用绝对路径。因为绝对路径的写法虽然比较麻烦,但可以肯定,这个写法绝对不会有问题。如果在程序中使用相对路径,则可能由于执行的工作环境不同,导致出现一些问题。这在例行性命令中尤其重要,第13章会介绍相关内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: