nginx Firefox 微软 开源 程序员 wordpress centos mysql java apache Python shell linux命令 google Android Ubuntu Windows linux php HTML5

linux文件系统目录结构详解

Linux文件系统采用带链接的树状目录结构,即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;子目录中又可含有更下级的子目录或者文件的信息……这样一层一层地延伸下去,构成一棵倒置的树,如图所示。

Linux文件系统目录结构

在目录树中,根节点和中间节点都必须是目录,而文件只能作为“叶子”出现。当然,目录也可以是叶子。

用户主目录
当注册进入系统时,主目录就是用户当前工作目录。主目录往往位于/home或者/usr目录之下,并且与注册名相同,如/usr/meng。

通常,主目录中包含子目录、数据文件及用于注册环境的配置文件。

路径名
迄今为止,你所看到的文件仅是主目录下的文件。其实,可以利用路径名来访问在层次结构文件系统中任何地方的文件和目录。为了访问文件,必须告诉系统它们在什么地方,即保存在哪个目录下。路径名描述了文件系统中通向任意文件的路径。

有两种路径名:绝对路径名和相对路径名。当为命令指定文件路径名时,要指定两种路径形式的一种,不管它有多长或多复杂。

1. 绝对路径名

在Linux操作系统中,每一个文件有唯一的绝对路径名,它是沿着层次树,从根目录开始,由到达相应文件的所有目录名连接而成的,各目录名之间以斜线(/)字符隔开,如/usr/meng b/func/file1

绝对路径名总是以斜线(/)字符开头,它表示根目录。如果要访问的文件在当前工作目录之上,那么,使用绝对路径名往往是最简便的方法。绝对路径名也称为全路径名。使用pwd命令可以在屏幕上显示出当前工作目录的绝对路径名,例如:
# pwd
/usr/meng

2. 相对路径名

相对路径名利用相对当前工作目录的路径指定一个文件。为了访问当前工作目录或其任意子目录中的文件,可以使用相对路径名。例如,如果工作目录是/usr/meng b,为了列出在目录/usr/meng b/func,可以使用下述命令:
# ls -l func/file1

相对路径名不能以斜线(/)字符开头。为了访问在当前工作目录中和当前工作目录之上的文件,可以在相对路径名中使用特殊目录名—点(.)和点点(..)。点(.)表示本目录自身,而点点(..)代表该目录的父目录。例如,当前目录为/usr/meng b,想列出/usr u目录的内容,可使用命令:
# ls ../../liu

注意:在每个目录中都有点点目录文件(..)。/usr/meng b的父目录是/usr/meng,后者的父目录是/usr

利用../表示父目录的形式可以连续使用,直至根目录,如上例所示。系统中的每个文件都可以利用相对路径名来命名。

Linux文件系统目录结构

3. 正确使用路径

名在什么情况下使用绝对路径名,在什么情况下使用相对路径名,取决于那种方式是否涉及更少的目录,也就是有更少的键盘输入。

例如,如果当前的工作目录/etc/conf/cf.d,需要访问系统密码文件/etc/passwd,那么,其绝对路径名是/etc/passwd,而相对路径名是../../passwd。绝对路径名涉及的目录有2个,而相对路径名涉及的目录却是3个。此时,使用绝对路径名更有效。

但是,如果当前的工作目录是/usr/meng b,而需要访问在func目录之下的file1文件,那么,其绝对路径名是/usr/meng b/func/file1,其相对路径名是func/file1。绝对路径名涉及的目录有5个,而相对路径名涉及的目录只有2个。此时,使用相对路径名更有效。

如果不清楚当前工作目录与其他目录之间的关系,那么最好使用绝对路径名。

延伸阅读

评论