对于计算机来说所谓的数据就是0和1的序列。这样的一个序列可以存储在内存中但内存中的数据会随着关机而消失。为了将数据长久保存我们把数据存储在光盘或者硬盘中。根据我们的需要我们通常会将数据分开保存到文件这样一个个的小单位中(所谓的小是相对于所有的数据而言)。但如果数据只能组织为文件的话而不能分类的话文件还是会杂乱无章。每次我们搜索某一个文件就要一个文件又一个文件地检查太过麻烦。文件系统(file system)是就是文件在逻辑上组织形式它以一种更加清晰的方式来存放各个文件。路径与文件简介文件被组织到文件系统(file system)中通常会成为一个树状(tree)结构。Linux有一个根目录/, 也就是树状结构的最顶端。这个树的分叉的最末端都代表一个文件而这个树的分叉处则是一个目录(directory, 相当于我们在windows界面中看到的文件夹)。在图1中看到的是整个的一个文件树。如果我们从该树中截取一部分比如说从目录vamei开始往下实际上也构成一个文件系统。要找到一个文件除了要知道该文件的文件名还需要知道从树根到该文件的所有目录名。从根目录开始的所有途径的目录名和文件名构成一个路径(path)。比如说我们在Linux中寻找一个文件file.txt不仅要知道文件名(file.txt)还要知道完整路径也就是绝对路径(/home/vamei/doc/file.txt)。从根目录录/, 也就是树状结构的最顶端出发经过目录home, vamei, doc最终才看到文件file.txt。整个文件系统层层分级(hierarchy)vamei是home的子目录而home是vamei的父目录。在Linux中我们用ls命令来显示目录下的所有文件比如 $ls /home/vamei/doc图1 文件树如该图中所示的文件系统即绿色构成的树。最顶端的根目录(/)沿红色箭头标出的路径我们最终找到文件file.txt。目录在Linux系统中目录也是一种文件。所以/home/vamei是指向目录文件vamei的绝对路径。这个文件中至少包含有以下条目:. 指向当前目录.. 指向父目录除此之外目录文件中还包含有属于该目录的文件的文件名比如vamei中就还要有如下条目指向属于该目录的文件:docmoviephotoLinux解释一个绝对路径的方式如下先找到根目录文件从该目录文件中读取home目录文件的位置然后从home文件中读取vamei的位置……直到找到目录doc中的file.txt的位置。由于目录文件中都有.和..的条目我们可以在路径中加入.或者..来表示当前目录或者父目录比如/home/vamei/doc/..与/home/vamei等同。此外Linux会在进程中维护一个工作目录(present working directory)的变量。在shell中你可以随时查询到到工作目录(在命令行输入$pwd)。这是为了省去每次都输入很长的绝对路径的麻烦。比如说我们将工作目录更改为/home/vamei ($cd /home/vamei)那么此时我们再去找file.txt就可以省去/home/vamei/ ($ls doc/file.txt)这样得到的路径叫相对路径(relative path)上面的doc/file.txt就是这样一个相对路径。当文件出现在一个目录文件中时我们就把文件接入到文件系统中我们称建立一个到文件的硬链接(hard link)。一个文件允许出现在多个目录中这样它就有多个硬链接。当硬链接的数目(link count)降为0时文件会被Linux删除。所以很多时候unlink与remove在Linux操作系统中是一个意思。由于软链接(soft link)的广泛使用(soft link不会影响link count而且可以跨越文件系统)现在较少手动建立硬连接。文件操作对于文件我们可以读取(read)写入(write)和运行(execute)。读取是从已经存在的文件中获得数据。写入是向新的文件或者旧的文件写入数据。如果文件储存的是可执行的二进制码那么它可以被载入内存作为一个程序运行。在Linux的文件系统中如果某个用户想对某个文件执行某一种操作那么该用户必须拥有对该文件进行这一操作的权限。文件权限的信息保存在文件信息(metadata)中, 见下一节。文件附加信息 (metadata)文件自身包含的只有数据。文件名实际上储存在目录文件。除了这些之外还有操作系统维护的文件附加信息比如文件类型文件尺寸文件权限文件修改时间文件读取时间等。可以用ls命令查询文件信息($ls -l file.txt)得到如下结果-rw-r--r-- 1 vamei vamei 8445 Sep 8 07:33 file1.txt各个部分的含义如下我们先介绍最开始的-它表示文件类型说明file1.txt是常规文件(如果是目录文件则应显示d)。随后有九个字符为rw-r--r--它们用于表示文件权限。这九个字符分为三组rw-, r--, r--分别对应拥有者(owner)拥有组(owner group)和所有其他人(other)。回顾Linux开机启动登录后我会有一个用户身份和一个组身份, 相当于我的名片。第一组表示如果我的名片上的用户身份证明我是该文件的拥有者那么我就可以对该文件有读取(r)写入(w)该文件的权限但不拥有执行(-如果拥有执行权限则为x)该文件的权限。第二组表示如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员那么我有从该文件读入的权限。第三组表示如果我的名片显示我既不是拥有者也不是拥有组的一员那么我只有读入的权限。当我想要进行一个读取操作时Linux会先看我是否是拥有者下文会进一步解释拥有者和拥有组。后面的1是硬连接(hard link)数目(link count)。之后的vamei表示用户vamei是文件的拥有者(owner)文件的拥有者有权更改文件权限(比如改为rwxrwxrwx)。而后面的vamei文件的拥有组是组vamei。文件的拥有者和拥有组在文件创建时就附加在文件上(相当于给文件上锁只有有合适名片的用户才能打开操作)。要注意Linux有一个超级用户root (也叫做根用户)该用户拥有所有的文件。随后的8445表示文件大小单位为字节(byte)。Sep 8 07:33表示文件的上一次写入的时间(modification time)。实际上在文件附加信息中还包含有文件的上一次读取时间(access time)没有显示出来。软链接 (soft link, or symbolic link)如上讨论硬链接时说到的软链接不会影响文件的link count。如果还记得windows系统的快捷方式的话Linux的软链接(soft link也叫做symbolic link)就是linux的快捷方式。软链接本质上是一个文件它的文件类型是symbolic link。在这个文件中包含有链接指向的文件的绝对路径。当你从这个文件读取数据时linux会把你导向所指向的文件然后从那个文件中读取就好像你双击快捷方式的效果一样。软链接可以方便的在任何地方建立并指向任何一个绝对路径。软链接本身也是一个文件也可以执行文件所可以进行的操作。当我们对软链接操作时要注意我们是对软链接本身操作还是对软链接指向的目标操作。如果是后者我们就说该操作跟随链接指引(follow the link)。umask当我们创建文件的时候比如使用touch它会尝试将新建文件创建为权限666也就是rw-rw-rw-。但操作系统要参照权限mask来看是否真正将文件创建为666。权限mask表示操作系统不允许设置的权限位比如说037(----wxrwx)的权限mask意味着不允许设置设置group的wx位和other的rwx位。如果是这个权限mask的话最终的文件权限是rw-r----- (group的w位和other的rw位被mask)。我们可以通过$umask 022的方式改变权限mask。总结计算机本质上是对数据进行处理的工具而文件是数据储存的逻辑载体所以了解Linux文件系统很重要。对于文件系统的了解要结合Linux的其他方面(比如用户管理)进行有机的学习。
Linux文件管理使用详解
发布时间:2026/5/23 9:17:19
对于计算机来说所谓的数据就是0和1的序列。这样的一个序列可以存储在内存中但内存中的数据会随着关机而消失。为了将数据长久保存我们把数据存储在光盘或者硬盘中。根据我们的需要我们通常会将数据分开保存到文件这样一个个的小单位中(所谓的小是相对于所有的数据而言)。但如果数据只能组织为文件的话而不能分类的话文件还是会杂乱无章。每次我们搜索某一个文件就要一个文件又一个文件地检查太过麻烦。文件系统(file system)是就是文件在逻辑上组织形式它以一种更加清晰的方式来存放各个文件。路径与文件简介文件被组织到文件系统(file system)中通常会成为一个树状(tree)结构。Linux有一个根目录/, 也就是树状结构的最顶端。这个树的分叉的最末端都代表一个文件而这个树的分叉处则是一个目录(directory, 相当于我们在windows界面中看到的文件夹)。在图1中看到的是整个的一个文件树。如果我们从该树中截取一部分比如说从目录vamei开始往下实际上也构成一个文件系统。要找到一个文件除了要知道该文件的文件名还需要知道从树根到该文件的所有目录名。从根目录开始的所有途径的目录名和文件名构成一个路径(path)。比如说我们在Linux中寻找一个文件file.txt不仅要知道文件名(file.txt)还要知道完整路径也就是绝对路径(/home/vamei/doc/file.txt)。从根目录录/, 也就是树状结构的最顶端出发经过目录home, vamei, doc最终才看到文件file.txt。整个文件系统层层分级(hierarchy)vamei是home的子目录而home是vamei的父目录。在Linux中我们用ls命令来显示目录下的所有文件比如 $ls /home/vamei/doc图1 文件树如该图中所示的文件系统即绿色构成的树。最顶端的根目录(/)沿红色箭头标出的路径我们最终找到文件file.txt。目录在Linux系统中目录也是一种文件。所以/home/vamei是指向目录文件vamei的绝对路径。这个文件中至少包含有以下条目:. 指向当前目录.. 指向父目录除此之外目录文件中还包含有属于该目录的文件的文件名比如vamei中就还要有如下条目指向属于该目录的文件:docmoviephotoLinux解释一个绝对路径的方式如下先找到根目录文件从该目录文件中读取home目录文件的位置然后从home文件中读取vamei的位置……直到找到目录doc中的file.txt的位置。由于目录文件中都有.和..的条目我们可以在路径中加入.或者..来表示当前目录或者父目录比如/home/vamei/doc/..与/home/vamei等同。此外Linux会在进程中维护一个工作目录(present working directory)的变量。在shell中你可以随时查询到到工作目录(在命令行输入$pwd)。这是为了省去每次都输入很长的绝对路径的麻烦。比如说我们将工作目录更改为/home/vamei ($cd /home/vamei)那么此时我们再去找file.txt就可以省去/home/vamei/ ($ls doc/file.txt)这样得到的路径叫相对路径(relative path)上面的doc/file.txt就是这样一个相对路径。当文件出现在一个目录文件中时我们就把文件接入到文件系统中我们称建立一个到文件的硬链接(hard link)。一个文件允许出现在多个目录中这样它就有多个硬链接。当硬链接的数目(link count)降为0时文件会被Linux删除。所以很多时候unlink与remove在Linux操作系统中是一个意思。由于软链接(soft link)的广泛使用(soft link不会影响link count而且可以跨越文件系统)现在较少手动建立硬连接。文件操作对于文件我们可以读取(read)写入(write)和运行(execute)。读取是从已经存在的文件中获得数据。写入是向新的文件或者旧的文件写入数据。如果文件储存的是可执行的二进制码那么它可以被载入内存作为一个程序运行。在Linux的文件系统中如果某个用户想对某个文件执行某一种操作那么该用户必须拥有对该文件进行这一操作的权限。文件权限的信息保存在文件信息(metadata)中, 见下一节。文件附加信息 (metadata)文件自身包含的只有数据。文件名实际上储存在目录文件。除了这些之外还有操作系统维护的文件附加信息比如文件类型文件尺寸文件权限文件修改时间文件读取时间等。可以用ls命令查询文件信息($ls -l file.txt)得到如下结果-rw-r--r-- 1 vamei vamei 8445 Sep 8 07:33 file1.txt各个部分的含义如下我们先介绍最开始的-它表示文件类型说明file1.txt是常规文件(如果是目录文件则应显示d)。随后有九个字符为rw-r--r--它们用于表示文件权限。这九个字符分为三组rw-, r--, r--分别对应拥有者(owner)拥有组(owner group)和所有其他人(other)。回顾Linux开机启动登录后我会有一个用户身份和一个组身份, 相当于我的名片。第一组表示如果我的名片上的用户身份证明我是该文件的拥有者那么我就可以对该文件有读取(r)写入(w)该文件的权限但不拥有执行(-如果拥有执行权限则为x)该文件的权限。第二组表示如果我的名片上的组身份证明我所在的组是该文件的拥有组的一员那么我有从该文件读入的权限。第三组表示如果我的名片显示我既不是拥有者也不是拥有组的一员那么我只有读入的权限。当我想要进行一个读取操作时Linux会先看我是否是拥有者下文会进一步解释拥有者和拥有组。后面的1是硬连接(hard link)数目(link count)。之后的vamei表示用户vamei是文件的拥有者(owner)文件的拥有者有权更改文件权限(比如改为rwxrwxrwx)。而后面的vamei文件的拥有组是组vamei。文件的拥有者和拥有组在文件创建时就附加在文件上(相当于给文件上锁只有有合适名片的用户才能打开操作)。要注意Linux有一个超级用户root (也叫做根用户)该用户拥有所有的文件。随后的8445表示文件大小单位为字节(byte)。Sep 8 07:33表示文件的上一次写入的时间(modification time)。实际上在文件附加信息中还包含有文件的上一次读取时间(access time)没有显示出来。软链接 (soft link, or symbolic link)如上讨论硬链接时说到的软链接不会影响文件的link count。如果还记得windows系统的快捷方式的话Linux的软链接(soft link也叫做symbolic link)就是linux的快捷方式。软链接本质上是一个文件它的文件类型是symbolic link。在这个文件中包含有链接指向的文件的绝对路径。当你从这个文件读取数据时linux会把你导向所指向的文件然后从那个文件中读取就好像你双击快捷方式的效果一样。软链接可以方便的在任何地方建立并指向任何一个绝对路径。软链接本身也是一个文件也可以执行文件所可以进行的操作。当我们对软链接操作时要注意我们是对软链接本身操作还是对软链接指向的目标操作。如果是后者我们就说该操作跟随链接指引(follow the link)。umask当我们创建文件的时候比如使用touch它会尝试将新建文件创建为权限666也就是rw-rw-rw-。但操作系统要参照权限mask来看是否真正将文件创建为666。权限mask表示操作系统不允许设置的权限位比如说037(----wxrwx)的权限mask意味着不允许设置设置group的wx位和other的rwx位。如果是这个权限mask的话最终的文件权限是rw-r----- (group的w位和other的rw位被mask)。我们可以通过$umask 022的方式改变权限mask。总结计算机本质上是对数据进行处理的工具而文件是数据储存的逻辑载体所以了解Linux文件系统很重要。对于文件系统的了解要结合Linux的其他方面(比如用户管理)进行有机的学习。