涨知识啦 | Linux的文件组织

408 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

区别于Windows,Linux有不一样的文件组织结构,它像一棵树一样。

一、Linux和windows的区别

Linux 中管理文件的系统初看是有些令人费解的,特别是对于已经习惯 Windows 的文件组织方式的朋友。

在 Linux 中,我们可找不到什么 C 盘、D 盘、E 盘等等,完全不是这样的。

不像 Windows 分成 C 盘、D 盘、光盘驱动器、内存读卡器等。Linux 是把所有东西都放在一个地方。

那么我们怎么才能区分我们硬盘的第一张磁盘、第二张磁盘、光盘驱动器等等呢?

二、两种组织文件

简单起见,我们把 Linux 下的文件分为两大类:

  • 普通的文件:这是我们已经熟知的文件类型,这样的文件包括:文本类型的文件(.txt、.doc、.odt等等),声音文件(.wav、.mp3、.ogg),还有程序等等。简单来说,这些文件在 Windows 下也有;
  • 特殊的文件:其它一些文件是特殊的,因为它们表示一些东西。例如,你的光盘驱动器就是这类特殊的文件。Windows 把电脑里的东西区分为文件和非文件,但 Linux 不是这样。对于 Linux 来说,一切都是文件
    甚至目录也是文件。这是很不相同的设计,一开始是有点令人狼狈的。但是不要怕,你慢慢会发现这样设计的精妙。
    根目录

在一个文件系统中,我们总有一个被称为 根目录 的东西,这个根目录里包含了所有其它目录和文件。

在 Windows 中,可以有好几个根目录,比如说 C 盘(C:\)是你的硬盘根目录(假如你没有把 C 盘进行磁盘分区的话。不少人喜欢把 C 盘拆分成 C 盘、D 盘、E盘、F 盘等等。C 盘作为系统盘,D 盘安装软件,E 盘、F 盘等另作他用),H 盘可能是你的光盘驱动器的根目录。

Linux 中有且只有一个根目录,就是 / 。是的,就是用一个斜杠表示。没有比根目录再高一阶的目录了,因为没有目录包含根目录,根目录就是 Linux 最顶层的目录,“万有之源,斜杠青年”。

目录的结构

在 Windows 下,一个目录也许是这样的形式:

C:\Program Files\Baidu

我们说 Baidu 这个目录是 Program Files 这个目录的一个子目录,而 Program Files 这个目录是 C 盘这个根目录的一个子目录。

我们可以看到 Windows 中是用反斜杠 \ 来标明目录的层级与包含关系的。

而在Linux中,是用斜杠 / 来表示目录的层级与包含关系。

我们之前说过,Linux 中没有类似C盘这种目录,Linux 有且只有一个根目录,那就是 / 。

Linux 的目录形式是类似这样的:

/usr/bin

不难理解,bin 这个目录是 usr 这个目录的一个子目录,usr 这个目录是 / 这个根目录的一个子目录。

我们可以看到 Windows 中的目录名称可以包含空格等符号,Linux下的目录名也可以。

不过我们一般在 Linux 下命名目录时尽量不使用空格或者其它特殊符号,而是尽量用小写英文字母。这会省去很多不必要的麻烦。

根目录的直属子目录 参照下面这张图即可。

image.png