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/
”。这整体叫做“目录树”。你可以把一个绝对文件名想象成从“/
”这棵树的基到某个分支(一个文件)的结尾的一条路径。你也听到人们谈论目录树,就好像它是一个包含所有直系后代的“家庭”树的一个图,这个图叫做根目录(“/
”):因此子目录有父目录,并且一条路径显示了一个文件完整的祖先。也有相对路径从其他地方开始,而不是从根目录。 你应该还记得目录“../
”指向父目录。这个术语也适用于其他类似目录的结构,如分层数据结构。- 对于一个物理设备, 是没有一个特定的目录路径名来对应的组成部分. 这不同于RT-11, CP/M,OpenVMS,MS-DOS,AmigaOS, 以及微软的Windows,这些系统存在一个路径包含了一个设备名字,比如”
C:\
“。(尽管如此, 路径条目确实存在引用了物理设备作为正常的文件系统的一部分. 参考第 1.2.2 节 “文件系统深入解析”。)
- 对于一个物理设备, 是没有一个特定的目录路径名来对应的组成部分. 这不同于RT-11, CP/M,OpenVMS,MS-DOS,AmigaOS, 以及微软的Windows,这些系统存在一个路径包含了一个设备名字,比如”
注意 | |
---|---|
虽然你可以在文件名中使用任意的字幕或者符号, 但是在实际情况下这样做是一个坏主意. 最好避免使用一些在命令行里面含有特殊意义的字符, 比如空格, 制表符, 换行符, 和其它的特殊字符: |
注意 | |
---|---|
这个 “root” 可能既表示 “超级用户root” 又表示 “ 根目录”(/root) . 应该根据上下文确定它的用法. |
注意 | |
---|---|
单词path不仅表示包含全限定文件名, 也可能表示命令搜索的路径. 通常路径真实的意思是需要通过上下文来明确. |
关于文件层次的最佳详细实践在文件系统层次标准(“/usr/share/doc/debian-policy/fhs/fhs-2.3.txt.gz
“ 和 hier (7)). 你应该记住以下的一些标准作为开始学习的步骤.
表 1.3. 重要目录的用途列表
目录 | 目录用途 |
---|---|
/ | 根目录 |
/etc/ | 系统范围的配置文件 |
/var/log/ | 系统日志文件 |
/home/ | 所有非特权用户的用户目录 |