LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

《》Linux文件类型与文件权限权限与目录的区别

2023年7月8日 193点热度

一、文件系统介绍

Linux文件系统是Linux操作系统中用于组织和管理文件和目录的一种结构。它提供了一种层次化的形式来储存和访问文件数据,并提供了一些额外的功能,如权限管理、文件共享和c盘空间管理等。这部份大致分为那些内容:

二、stat(),fstat(),lstat()

stat(),fstat(),lstat()都是用于获取文件或目录的信息的系统调用函数。

stat和lstat须要文件路径,fstat须要文件描述符。lstat和stat类似,不同的是两者用于符号链接(软链接)时,lstat不会解析符号链接,而是返回符号链接本身的信息,stat则会获取符号链接所指向的文件的信息。

两者均会将文件信息放在传入的structstat结构体中,结构体定义如下:

调用系统服务异常原因_linux系统调用_调用系统函数

须要注意的是,其中的st_size并不是文件真实的占用c盘空间的大小,Linux中文件系统是按块分配c盘空间给文件的,所以st_blocks*512才是其所占c盘大小,而st_size只是它的一个属性。最典型的事例就是空洞文件。

这段代码会形成一个size为5G的空洞文件,并且其实际只占4Kc盘空间。另外,在对该文件进行cp时,cp每次从源文件读取一段数据,发觉都是''(空字符),也就不做写操作,所以cp过程中不会发生write操作,最后目标文件的blocks是0LINUX虚机,也就是不占c盘空间。

三、文件类型、文件权限

ls-l命令下第一个数组就是文件类型与文件权限。

其中第一个字符是文件类型,分为文件夹类型(d),字符设备类型(c),块设备类型(b),常规类型(-),符号链接类型(l),网路套接字(s),命名管线(p)。

前面每三个字符为一组文件权限,分为可读(r),可写(w),可执行(x)。从前到后分别为所有者权限,所属组权限,其他用户权限。

文件类型和权限在structstat结构体中是一个16位二补码数,即st_mode。以下是man指南中关于该st_mode的内容。其中里面七个函数为封装的宏,用于判别文件类型RED HAT LINUX 9.0,下边为该16位二补码数的位图,以八补码表示。

四、UFS文件系统

UFS(UnixFileSystem)是一种层次化的文件系统结构,用于在c盘上组织和管理文件和目录。它将一个c盘分为若干分区,将一个分区分为若干柱面组(块组)。

在这儿主要讲柱面组(块组)的结构。

1)第一部份为一些块组的描述性信息。

2)第二部份为inode位图,存0或1,为1表示inode部份对应位置存有数据。

3)第三部份为数据块位图,存0或1,为1表示数据块部份对应位置有数据。

4)第四部份为inode链表,储存文件的structinode结构体,该结构体中有stat相关数据,亚数据,还有一些不可见的内容,另外还有一个长为15的表针链表,该字段前12个为直接数据块表针,直接指向文件对应的数据块,若不够用会启用前面的3个间接数据块表针,这种表针也指向某个数据块linux系统调用,但上面储存的是表针链表,通过该数据块再间接找到储存数据的数据块。

5)第五部份为数据块linux系统调用,储存数据。

据悉,每位目录中都对应一个目录文件,其中保存了文件目录项,每位文件目录项保存一个文件的inode和文件名,访问一个目录也是通过这种目录项从根目录递归访问的。硬链接虽然就是一个目录项。

调用系统服务异常原因_linux系统调用_调用系统函数

五、其他文件相关系统调用函数

Bash中与文件相关的命令我们都很熟悉,她们都是用对应的系统调用函数封装上去的,对于那些函数详情可以自己去man指南中了解。

link():创建硬链接,即ln

unlink():删掉硬链接,和rmdir()一起封装成remove(),即rm

rmdir():删掉目录,和unlink()一起封装成remove(),即rm

rename():联通文件,即mv

mkdir():创建目录,即mkdir

chdir():切换当前目录,即cd

getcwd():获取当前所在目录,即pwd

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux创建文件夹 linux文件权限 linux系统 文件目录 文件类型
最后更新:2023年7月8日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You linux软件开发如何入门?学习Linux步骤及学习方法介绍 14年Linux发行版的有趣历史观点 Linux中不像Windows可以直接在控制面板中卸载? 2018年波及众多Linux发行版的性能对比会更加深入 如何用源码包安装的软件?name的方法总结
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
Linux内核和文件系统权限管理的基本用法——ACL权限 Linux内核开机启动程序详解(一):加载加载程序 如何增加一块硬盘虚拟机插硬盘分区格式化一、命令查看设备情况 Linux常用应用工具软件安装管理——RedHatEnterprise存储库 【】U盘su的输出是否有usb-storage, 如何实现本地机器与服务器之间的文件传输? Asahi团队将手伸向M2芯片,支持M1Ultra的MacStudio 5个最常见的Linux故障问题,以及如何使用命令行工具 Linux中一切皆文件,从分区和目录结构说起 linux默认启动命令行 不会面面俱到各个细节,望原谅细节!细节 linux下mysql中可以使用REVOKE语句来删除某个用户的权限 计算机操作系统全新版装系统盘点、理念与系统的优缺点 及帐户管理、bash内部命令帮助$helppwd2 PP助手:教你如何安装中文版Hideme8插件的方法 关于Linux系统版本命令的一些看法及解决办法的通知 PolKit和DirtyPipe这两个漏洞入手,阐述安全防御视角 【干货】管理用户(user)的工具或命令! 2018年波及众多Linux发行版的性能对比会更加深入 程序员不输入密码进入Linux系统,孩子们永远不知道下一个bug Torvalds:Linux内核开发的创新前景充满了热情
标签聚合
虚拟机 命令 操作 linux服务器 内核 linux系统 软件 文件 文件目录 应用
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 78篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.