在linux上,常见的文件类型有普通文件,目录文件,套接字文件,管道文件,链接文件与设备文件
链接文件分为硬链接
软连接(符号链接)
在文件系统层面的不同:硬链接直接指向原文件对应的inode
软连接如同创建一个新文件,占据磁盘块和inode,只不过磁盘块中存储的是原文件的路径(因此软连接文件大小等于原文件字符个数)
创建:硬链接 ln [-v] source dest
软连接 ln -s [-v] source dest
注意点:硬链接只能对文件创建,不能对目录创建
设备文件
在使用ls -l /dev 的时候,会看到很多的设备文件,一般分为块设备文件和字符设备文件
文件系统层面:设备文件不占据磁盘块,但是占据inode,在inode中会存储对应文件的主设备号和次设备号
因此,设备文件没有大小,主要就是设备号,内核是根据设备号访问对应的设备的
主设备号:某一类设备
次设备号:某一类设备中的某一个设备
创建设备文件:mknod [options] NAME TYPE [MAJOR MINOR]
NAME:一般应该遵循命名规则
TYPE:b(块设备,按块读取,可以实现随机访问)
c(字符设备,按字符一个一个线性读取)
MAJOR:主设备号
MINOR:次设备号
eg:mknod /dev/mydev c 66 66
从设备文件读取写入就是在设备上进行类似的操作:
eg:echo world > /dev/pts0 就会在pts0de终端看到相应内容