9 文件

LCAB / 2023-08-02 / 原文

每个Linux文件都有一个类型(type)来表明它在系统中的角色:
普通文件(regular file)包含任意数据。应用程序常常要区分文本文件(text file)和二进制文件(binary file),文本文件是只含有ASCII或Unicode字符的普通文件;二进制文件是所有其他的文件。对内核而言,文本文件和二进制文件没有区别。
Linux文本文件包含了一个文本行(text line)序列,其中每一行都是一个字符序列,以一个新行符(“\n”)结束。新行符与ASCII的换行符(LF)是一样的,其数字值为0x0a。
目录(directory)是包含一组链接(link)的文件,其中每个链接都将一个文件名(filename)映射到一个文件,这个文件可能是另一个目录。每个目录至少含有两个条目:“.”是到该目录自身的链接,以及“..”是到目录层次结构(见下文)中父目录(parent directory)的链接。你可以用mkdir命令创建一个目录,用1s查看其内容,用rmdir删除该目录。
套接字(socket)是用来与另一个进程进行跨网络通信的文件。
目录层次结构中的位置用路径名(pathname)来指定。路径名是一个字符串,包括一个可选斜杠,其后紧跟一系列的文件名,文件名之间用斜杠分隔。路径名有两种形式:
·绝对路径名(absolute pathname)以一个斜杠开始,表示从根节点开始的路径。,hel1o.c的绝对路径名为/home/droh/hello.c。
相对路径名(relative pathname)以文件名开始,表示从当前工作目录开始的路径。例如,如果/home/droh是当前工作目录,那么hel1o.c的相对路径名就是./hello.c。反之,如果/home/bryant是当前工作目录,那么相对路径名就是../home/droh/hello.c。