在Linux中,一切皆文件,因此我们需要对Linux下的文件系统有个清楚的认识。
文件属性
在Linux中,我们可以通过ls -l
或者ll
查看具体文件信息。
注意:ls命令是用于查看当前路目录下的文件名,但是不能查看文件属性。
文件属性具体都有哪些:
- 以‘-’开头的都为普通文件。
- 以d开头的文件为目录文件
- 以b开头的文件为设备文件(硬盘、光驱)
- 以l开头的文件为链接文件
- 以p开头的文件为管道文件
文件权限
其中对应的权限分别为:
- r可读
- w可写
- x可操作
如果我们需要查看一个文件的权限,我们可以使用ls l
搭配使用。
上面这个文件,其中所有者的权限为可读可写,所属组的权限为可读可写,其余权限为可读。
软链接与硬链接
-
软链接文件
类似于一个快捷方式,在Linux中软链接文件类似于文本文件。类似于一个文本文件包含着另一个文件的位置信息内容,因此我们可以通过这个“快捷文件”访问到软链接的源文件,对该”快捷方式“进行读写的时候,实质就是对软链接源文件进行操作,但是删除该”快捷方式“的时候,不会删除源文件。 -
硬链接文件
类似于一个文件的别名,我们对文件硬链接文件进行操作的时候,首先通过这个别名找到对应的源文件,再对源文件进行操作。在删除硬链接文件的时候,系统是不会删除硬链接的源文件。如果删除硬链接的源文件,则硬链接的文件不会删除,并且保存其原本的数据。因此硬链接文件可以预防”误删“的操作。
区别
- 硬链接文件不占用磁盘空间,仅仅是给其增加了一个别名(目录)
- 软链接占磁盘空间,由于其本质是一个快捷方式,因此其占用的内存也不是很多。
- 不能对目录创建硬链接。
- 不能跨文件系统创建硬链接文件。
文件描述符
当我们打开或者创建一个文件的时候,Linux内核会向一个进程发送一个文件的描述符。一个进程启动的时候,默认会打开3个文件(0标准输入、1标准输入、2标准错误)
int creat(const char* pathname,mode_t mode);
- pathname:创建文件的路径
- mde:文件权限
#include<stdio.h>
#include<fcntl.h>
int main()
{
int fd = -1;
char filename[] = "/root/text.txt";//创建文件的路径
fd = creat(pathname,066);
if(fd == -1)
{
printf("文件创建失败\n");
}
else
{
printf("文件创建成功\n");
}
return 0;
}