1.2.1. Unix 文件基础

下面是一些 Unix 文件基础。

  • 文件名是 区分大小写 的。也就是说, “MYFILE“ 和 “MyFile“ 是不同的文件。

  • 根目录意味着文件系统的根,简单的称为“/”,不要把它跟root用户的家目录“/root”混淆了。

  • 每个目录都有一个名字,它可以包含任意字母或除了/”以外的符号。根目录是个特例。它的名字是“/”(称作“斜线”或“根目录”),并且它不能被重命名。

  • 每个文件或目录都被指定一个全限定文件名绝对文件名,或路径,按顺序给出必须经过的目录从而到达相应目录。这三个术语是同义的。

  • 所有的全限定文件名以“/”目录开始,并且在每个目录或文件名之间有一个“/”。第一个“/”是最顶层目录,其他的“/”用于分隔跟着的子目录。直到到达最后的入口,即实际文件的名称。这些话可能会令人困惑。用下面这个全限定文件名作为例子:“/usr/share/keytables/us.map.gz”。不过,人们也把它的基名“us.map.gz”单独作为文件名。

  • 根目录有很多分支,例如“/etc/”和“/usr/”。这些子目录依次分出更多的子目录,例如“/etc/init.d/”和“/usr/local/”。这整体叫做“目录树”。你可以把一个绝对文件名想象成从“/”这棵树的基到某个分支(一个文件)的结尾的一条路径。你也听到人们谈论目录树,就好像它是一个包含所有直系后代的“家庭”树的一个图,这个图叫做根目录(“/”):因此子目录有目录,并且一条路径显示了一个文件完整的祖先。也有相对路径从其他地方开始,而不是从根目录。 你应该还记得目录“../”指向父目录。这个术语也适用于其他类似目录的结构,如分层数据结构。

[注意]注意

虽然你可以在文件名中使用任意的字幕或者符号, 但是在实际情况下这样做是一个坏主意. 最好避免使用一些在命令行里面含有特殊意义的字符, 比如空格, 制表符, 换行符, 和其它的特殊字符: { } ( ) [ ] ‘ ` “ \ / >< | ; ! #&^ * % @ $. 如果你想有一个区分度良好的命名, 比较好的选择是利用 时期, 连字符和下划线. 你也可以每个单词的首字母大写, 这叫大驼峰命名法, 比如这样 “LikeThis“. 经验丰富的Linux用户会趋向于在文件名中不使用空格.

[注意]注意

这个 “root” 可能既表示 “超级用户root” 又表示 “ 根目录”(/root) . 应该根据上下文确定它的用法.

[注意]注意

单词path不仅表示包含全限定文件名, 也可能表示命令搜索的路径. 通常路径真实的意思是需要通过上下文来明确.

关于文件层次的最佳详细实践在文件系统层次标准(“/usr/share/doc/debian-policy/fhs/fhs-2.3.txt.gz“ 和 hier (7)). 你应该记住以下的一些标准作为开始学习的步骤.

表 1.3. 重要目录的用途列表

目录目录用途
/根目录
/etc/系统范围的配置文件
/var/log/系统日志文件
/home/所有非特权用户的用户目录