Linux学习第十五章--文件系统的操作

前言

就个人而言,其实最讨厌学习理论知识了,满是绕口的句子,似懂非懂的概念,学起来简直就是折磨有木有!
如果不是给自己定了目标,我估计文件系统这一块理论知识,我又要蹦跶着过去了,不过还好坚持下来了,加油!

文件系统的查看

当我们在使用windows系统的时候,我们可以右键我们的分区(比如C盘),通过属性来查看当前分区剩余可用空间,已用空间等信息,那么在linux中我们如果想要查看这些属性的话有哪些命令可以做到呢?

df:报告文件系统磁盘空间的使用情况

df命令,主要用来查看硬盘使用情况,使用可以查看磁盘占用情况,包括block以及inode.

通过man df 我们可以了解到df命令可以生成文件系统空间使用状况报告.
他的命令格式是:df [选项] [文件],其中 选项和文件均为非必填.

通过文档的描述我们可以了解到,df命令可以显示出文件系统可用空间的大小,如果不指定文件名称的话,那就显示所有已挂载文件系统的属性,如果指定了一个挂载了文件系统的磁盘的绝对文件名,那么就只显示该文件所在的文件系统的属性.

关于df命令有几个常用的选项,
比如,-a 选项,该选项将使结果包含虚拟的文件系统,即显示全部的文件系统列表.
比如,-h选项,以人们比较容易阅读GB/MB/KB格式显示
比如-i选项,可以显示出inode节点的使用状况.
比如-H,选项进制使用1000代替1024.
比如--sync,在获取使用信息之前,先执行sync命令.
比如-T.输出分区对应的文件系统类型.

如果我们直接使用df命令,不选择任何参数,也不选择文件,那么将会默认输出当前被挂载文件系统的信息.

我们尝试分析一下这些数据:
数据的第一列即Filesystem,对应的内容是文件系统对应设备文件的路径名.看这一列的数据,其中/dev/xvda1比较好容易理解,但是devtmpfs和tmpfs又是什么东西呢?
此处暂时不需要理解太深,我们只需要知道devtmpfs完成了对设备文件创建的管理工作,而tmpfs是基于RAM的文件系统即可,暂时将其略过.
数据的第二列,即1k-blocks给出了文件系统中数据块的个数.
数据的第三列,即Used表示已使用的数据块,
数据的第四列,即Available表示可用的数据块,
数据第五列,即Use%,表示已使用数据的百分比(已用除以总)
数据第六列,即Mounted on 表示文件系统的挂载点.

当然,我们也可以使用df命令加参数的形式来进行定制化查询,比如加 -i 查询inode节点的使用情况,此处我们使用-ih来查看inode节点的使用情况.加上h后显示的数据会更易读.


df的参数组合有很多种,此处就不一一演示了.

du:估算文件使用量

du命令用来查看文件占用空间的大小.
他和df不同,df是用来查看文件系统的.他是用查看文件的,这一点务必要分清楚.


他常用的参数不多,
-a算一个,用来列出所有的文件大小和目录大小.
-h和df中的含义一样都是以人性化的方式展示,
-s只是列出指定目录占空间的大小,忽略掉内部文件的占用的空间.
-S和-s有些许的不同,就是-S不会显示子目录下的文件大小,
-c可以将指定多个目录/文件,显示出他们占用空间的大小,并统计他们的总和.
但是会显示当前目录下的文件大小.当然du还有一些其他的选项比如--inode,可以显示inode节点的使用量.

文件系统的链接

在windows系统中,我们可以通过右键文件-->发送到-->桌面快捷方式,然后当我们在桌面点击该快捷方式达到的效果就等同于点击该文件.
在linux中也是类似的功能,可以快速链接到目标文件.

软链接(symbolic Link)

在linux系统中,文件链接有两种形式,一种叫做硬链接(Hard Linx),另一种叫做软链接(也称作符号链接).
其中符号链接的功能就类似于windows中的快捷方式.
在之前学习的时候,我们了解到,当我们新建一个文件的时候,会给该文件分配一个inode节点和至少一个数据块(block).
当我们建立软链接的时候,系统会给该链接文件分配一个inode节点和数据块,和直接创建文件不同的是,软链接文件的数据块存放的并不是实际的文件内容,而是一个文件名称.
当我们操作该链接文件的 时候,实际上操作的确实源文件.因此,如果我们删除了源文件,那么软链接文件将无法正常使用,

硬链接(Hard Link)

我们说linux的链接文件有两种,一种是刚才说的软链接,另一种就是硬链接.
硬链接和软链接有本质的不同,首先硬链接不会占用inode节点和block.
在之前的学习,我们知道,inode节点负责记录的是文件的权限和属性,而分配给目录的block则负责记录文件名称和inode节点之间的映射.
也就是说,实际上文件名称只和文件的上一级目录有关,在们之前的学习中,通常是一个文件名称对应一个inode节点,一个inode节点对应一个文件.
那么有没有可能一个inode节点对应多个文件呢?这完全是有可能的.
因为我们只需要在目录中添加一个inode和文件名称的映射即可,而这就是硬链接.

通过上面的图示我们可以基本了解硬链接的工作原理.
在使用硬连接的时候,有两点需要特别注意一下.
因为硬链接本质上链接的是inode节点,所以无法跨文件系统.(如果这点不理解的话,需要回头看一下十三,十四篇)
硬链接不能链接目录!如果链接的是目录的话,那么我们新增的数据不仅仅是链接目录和源目录的映射,还要递归新增其子文件和子目录的记录.否则,将会造成其子文件无法找到,这样增加环境的复杂度,所以 目前尚不支持硬链接目录.

链接文件的创建

如果我们需要创建链接文件,可以使用命令ln来实现.
ln命令用于创建链接文件,默认创建硬链接,如果需要创建软连接文件可以加上选项 -s.


--backup创建目标文件的备份
-b 类似于--backup,但是不支持参数
-d/-F,允许超级用户尝试给目录创建硬链接.
-f ,创建文件链接,如果目标文件已经存在了,那就删除再创建.
-i,在删除文件的时候进行询问.
-L废弃指定符号链接
-n 将符号链接的目录作为一个普通文件
-P 把硬链接转为软链接
-r 创建相对于当前位置的符号链接
-s 创建符号链接
-t 指定创建链接的目录
-T 把目标文件作为一个普通文件
-v 输出每个链接文件的名称.
啧啧.ln命令的选项也不少...,接下来,我们实际使用一下...


转载于:https://my.oschina.net/u/3101282/blog/1502891

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值