Linux的文件类型和文件属性等

本文介绍了Linux中文件类型和属性。文件类型包括普通、目录、链接和设备文件,Linux将目录和设备当文件处理,提高效率。链接文件分硬链接和软链接,各有特点。设备文件屏蔽设备访问复杂性。文件属性决定能否执行,可用八进制数表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件类型:
Linux中的文件类型和Windows有明显的区别,最大的就在于,Linux把目录和设备都当做文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux的文件,分为四类:普通文件、目录文件、链接文件和设备文件。

  • 普通文件:
    普通文件可以是源代码、可执行文件、文本图片音频或者视频等,其实就是Windows的那种最基本的文件(你看目录、链接、设备文件都知道,还剩下什么文件)。

  • 目录文件:

在Linux里,目录文件也是文件。他们包含文件名和子目录名以及指向那些文件和子目录的指针。当文件和目录相对应起来,就是用指针将其链接起来之后,就构成了目录文件。

  • 链接文件:

linux中,几个文件名可以和一个 i 结点相关联(这几个就是一个是普通文件,其余是硬链接文件了)。i 结点含有一个字段,其中含有与文件的关联数目。要增加一个链接,只需要简单地建立一个目录项(应该是Linux内核或者哪个地方,有一块文件目录表,记录着所有的文件–结点信息),该目录项的 i 结点号指向该 i 结点,并增加该 i 结点的链接个数即可。但如果是删除一个链接,或者删除原文件,在内核上并不是删除链接或者文件,而是递减 i 结点的链接计数值。当计数值为0时,才释放结点,所以文件或者链接才彻底消失。这种链接,称为 硬链接(hard link)
而还有一种是软链接(符号链接symbolic link)。符号链接是没有指向那个 i 结点的,是需要另外的磁盘空间。当Linux从路径名到 i 结点的转换中,当内核遇到一个符号链接时,就用该链接对应的文件替换,并继续路径名的翻译工作(文件架构,是通过 结点的形式实现的。所以说,越研究Linux的底层设计,越觉得真是巧妙)。 在用户使用的角度来看,它就相当于Windows下的快捷方式了。
由于符号链接没有指向 i 结点,所以它可以指向任意类型的文件,甚至是一个不存在的文件(删除原文件后,符号链接就是指向不存在的文件)。它可以实现,对不同目录。文件系统、甚至是不同机器上的文件的直接访问,这是Windows的快捷方式所达不到的。

ln命令默认建立硬链接(hard link),使用-s参数,可以建立软链接。 如:
ln temp.c hardlink
ln -s temp.c softlink

在使用上,就是:
——软链接没有与硬链接发生联系,中间需要通过文件相连
——修改硬链接或者软链接的内容,都会同时修改所有的被链接的文件
——删除原文件后,软链接失效,但是硬链接可以继续使用,直到 i 结点计数值为0
——为了避免造成目录树的循环,对于目录文件,不能使用硬链接

  • 设备文件:

Linux为了屏蔽用户对设备访问的复杂性,采用了设备文件。设备文件,包括硬盘、光驱、打印机等。存在两类设备特殊文件:字符和块设备特殊文件。前者(如键盘)允许通过字符模式进行 io 操作。后者(如磁盘)需要通过高速缓冲功能以块模式写数据方式操作。所有的设备文件,都放在 /dev 目录下。

附有:
普通文件:-
目录文件:d
链接文件:l
字符设备文件:c
块设备:b
命名管道:p(如先入先出文件)
堆栈文件:f(如后进先出文件)

文件属性:
Linux中,一个文件能否执行,与后缀无关,而是文件属性有关。
文件属性如下:
rwx r-x r-x (文件拥有者权限(u) 文件所有组权限(g) 系统其它用户权限(o))
其中,
r: 可读
w:可写
x :可执行
-:没有权限

可用八进制数来表示文件属性,上面那个表示为:
rwx :7 r-x :5 r-x:5 ,即0755(八进制前面一定要加0作为区分)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值