第1章 文件与目录-【千锋教育】Linux系统编程(慕课版)
2023-03-21
|
57页
|
137人阅读
|
0人下载
教辅
内容正文:
第1章 文件与目录
文件属性
目录操作
文件系统
文件属性
目录操作
1.2
1.1
文件系统
1.3
☞点击查看本小节知识架构
☞点击查看本小节知识架构
☞点击查看本小节知识架构
学习目标
了解
掌握
掌握
掌握
了解linux系统中文件的类型
1
掌握文件系统的概念
4
2
掌握获取文件的属性信息的方法
3
掌握文件的存取权限与目录的操作方法
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
在开篇的第一章里,介绍Linux系统中应用最为广泛的知识:文件的属性特点与文件目录的操作,以及文件系统的概念。对于Linux操作系统而言,一切皆文件,由此可见文件是Linux操作系统的重要组成部分。本章内容有助于读者对后续章节的理解与应用。
1.1 文件属性
1.1.1
文件的类型
返回目录
1.1.2
符号链接文件
1.1.3
stat()函数、fstat()函数和lstat()函数
1.1.4
文件属主
1.1.5
文件的存取许可权
1.1 文件属性
1.1.6
chmod()函数和fchmod()函数
返回目录
1.1.7
文件的长度
1.1.8
文件的截取
1.1.9
更改文件名
1.1.10
文件的时间戳
1.1 文件属性
了解文件首先需要理解Linux系统中文件的类型,以及它们各自的特点。Linux系统中的大多数文件是普通文件或目录,但是也有另外一些文件类型。
(1)普通文件(regular file)。这种文件是最常见的文件类型,其数据形式可以是文本还是二进制数据。
(2)目录文件(directory file)。这种文件包含其他类型文件的名字以及指向与这些文件有关信息的指针。对一个目录文件有读许可权的任一进程都可以读该目录文件的内容,但只有内核才有写目录文件的权限。
(3)字符设备文件(character special file)。这种文件类似于字符设备的一种抽象,它代表的是应用程序对硬件设备的访问接口。Linux应用程序通过对该文件进行操作来实现对设备的访问。
1.1.1 文件的类型
1.1 文件属性
(4)块设备文件(block special file)。这种文件类似于字符设备文件,只是它用于磁盘设备。Linux系统中的所有设备或者抽象为字符设备文件,或者为块设备文件。
(5)管道文件(pipe file)。这种文件用于进程间的通信,有时也将其称为命名管道。本书第5章将对其进行详细说明。
(6)套接字文件(socket file)。这种文件用于进程间的网络通信,也可用于在一台宿主机上的进程之间的本地通信。本书第7章开始对其进行详细说明。
(7)符号链接文件(symbolic link file)。这种文件指向另一个文件。
在Linux系统终端输入“ls –l 目录名”,即可查看到需要查看的目录下的所有文件及类型。
1.1.1 文件的类型
1.1 文件属性
通常情况下,文件的类型用一个字符表示。文件类型的字符表示如表所示。
1.1.1 文件的类型
文件类型的宏定义如表所示。
1.1 文件属性
上一节中介绍的7种文件类型,字符设备文件与块设备文件一般在讨论底层驱动时会使用到,这里不再描述。套接字文件常用于实现进程间的网络通信,后续在讨论网络通信时,将着重介绍。本节单独介绍符号链接文件的特点。
符号链接文件类似于Windows系统的快捷方式,只保留目标文件的地址,而不用占用存储空间。使用符号链接文件和使用目标文件的效果是一样的,符号链接文件可以指定不同的访问权限,以控制对文件的共享和保证安全性。
Linux中有两种类型的链接:硬链接和软链接。
1.1.2 符号链接文件
1.1 文件属性
硬链接是利用Linux系统为每个文件分配的物理编号i节点建立链接(关于i节点,详见1.1.10节)。因此,硬链接不能跨越文件系统。硬链接的文件属性与源文件是基本一致的,二者可以同步更新。这种方式类似于Windows系统中将文件复制一份。
软链接是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度保证可移植性。软链接更像是Windows中创建快捷方式,软链接文件权限不会改变源文件(目标文件)的权限。
1.1.2 符号链接文件
1.1 文件属性
硬链接和软链接的不同之处在于,源文件删除后,软链接无法定位到源文件,所以会显示没有文件;硬链接类似于复制,删除源文件,硬链接依然可以访问。假如删除源文件后,重新创建一个同名文件,软链接将恢复;硬链接则不再有效。因为文件的i节点已经改变。
需要注意的是,修改链接的目标文件名,硬链接依然有效,软链接将断开;对一个已存在的符号链接文件执行移动或删除操作,有可能导致链接的断开。
1. link()函数和unlink()函数分别创建和移除硬链
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。