在计算机系统中存有大量的文件,如何有效的组织与管理它们,并为用户提供 一个使用方便的接口是文件系统的一大任务.Linux系统以文件目录的方式来 组织和管理系统中的所有文件.所谓文件目录就是将所有文件的说明信息采用 树型结构组织起来,即我们常说的目录.也就是说,整个文件系统有一个“根” (/),然后在根上分“杈”(目录),任何一个分杈上都可以再分杈 ,杈上也可以长出“叶子”(文件).“根”和“杈”在Linux中是“目录”或 “文件夹”.而“叶子”则是一个个的文件.实践证明,此种结构的文件系统 效率比较高.
如前所述,目录也是一种类型的文件.Linux系统通过目录将系统中所有的文件 分级、分层组织在一起,形成了Linux文件系统的树型层次结构.以根目录为起 点,所有其他的目录都由根目录派生而来.一个典型的Linux系统的树型目录结 构如下所示.用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访 问那里的文件.
/----------lib
|--------dev
|--------etc
|--------home------larry
| `----sam
|--------proc
|--------tmp
`--------usr---------X11R6
|-------bin
|-------etc
|-------include
|-------lib
|-------local-------bin
| |-----etc
| `-----lib
|-------man
|-------src---------linux
`-------tmp
上图中,我们只给出了目录结点名称,而没有给出各个目录“之下”的每一个 文件.实际上,各个目录结点“之下”都会有一些文件和子目录.并且,系统 在建立每一个目录时,都会自动为它设定两个隐含目录文件,一个是“.”,代表 该目录自己,另一个是“..”,代表该目录的上层目录,对于根目录,“.”和 “..”都代表其自身.
Linux目录结构提供了管理文件的简便途径.基于管理上的方便,用户可 以为自己的文件创建单独一个目录;可以把一个目录下的文件移动或复制到另 一目录下,而且能移动整个目录;可以通过连接和系统中的其他用户共享某些目录 和文件,减少磁盘空间占用; 能够方便地从一个目录切换到另一个目录;通过设置目录 和文件的管理权限,对文件和目录的访问进行某些限制;同时,文件目录结构 的相互关联性使分享数据变得十分容易,几个用户可以访问同一个文件.
需要说明的是,根目录是Linux系统中的特殊目录.Linux是一个多用户系统, 操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系 统目录.在上图中那些根目录下的目录就是系统目录.
如前所述,目录是Linux系统组织文件的一种特殊文件.为使用户更好地使用目 录,我们介绍有关目录的一些基本概念.
从逻辑上讲,用户在登录到Linux系统中之后,每时每刻都“处在”某个目录之 中,此目录被称作工作目录或当前目录(Working Directory).工作目录是 可以随时改变的.用户初始登录到系统中时,其主目录(Home Directory)就 成为其工作目录.工作目录用“.”表示,其上级目录用“..”表示.用户主目录 是系统管理员增加用户时建立起来的(以后也可以改变),每个用户都有自己 的主目录,不同用户的主目录一般互不相同.用户刚登录到系统中时,其工作 目录便是该用户主目录,通常与用户的登录名相同.用户可以通过一个“”字 符来引用自己的主目录.例如命令:
/home/WANG$ cat ~/class/software_1和下面的命令
/home/WANG$ cat /home/WANG/class/software_1意义相同.shell将用用户主目录名来替换“”字符. 目录层次建立好之后,用户就可以把有关的文件放到相应的目录中,从而实现 对文件的组织.对文件进行访问时,需要用到 “路径”(Path)的概念.
顾名思义,路径是指从树型目录中的某个目录层次到某个文件的一条通路.此 路径的主要构成是目录名称,中间用“/”分开.任一文件在文件系统中的位 置都是由相应的路径决定的.用户在对文件进行访问时,要给出文件所在的路 径.路径又分相对路径和绝对路径.绝对路径是指从“根”开始的路径,也称 为完全路径;相对路径是从用户工作目录开始的路径.
应该注意到,在树型目录结构中到某一确定文件的绝对路径和相对路径均只有 一条.绝对路径是确定不变的,而相对路径则随着用户工作目录的变化而不断 变化.这一点对于我们以后使用某些命令如cp和tar等大有好处.
用户要访问一个文件时,可以通过路径名来引用.并且可以根据要访问的文件 与用户工作目录的相对位置来引用它,而不需要列出这个文件的完整的路径名. 例如,用户 WANG 有一个名为 class 的目录,该目录中有两个文件∶ software 和 hardware. 若用户 WANG 想显示出其 class 目录中的名为 software 的文件, 可以使用下列命令∶
/home/WANG$ cat /home/WANG/class/software_1用户也可以根据文件softwarei_1与当前工作目录的相对位置来引用该文件.这 时命令为∶
/home/WANG$ cat class/software_1