细述Touch命令

touch

touch可以创建一个空文件,使用的命令很简单。

touch log.txt

批量创建空文件:

touch log-{1..10}.txt

那么创建空文件的意义是什么呢?空文件是否占用系统磁盘空间呢?

首先,空文件的创建看上去没有意义,但在实际应用中很常见。比如说空文件可以作为驱动事件或者是标志文件,其 作为文件实体,文件本身已经在操作体统中体现了存在的意义,并且文件名和属性也包含有大量信息供应用逻辑使用。 就如我们可以通过

ls-l log.txt

来查看文件的具体信息,何时创建由谁创建,何时是最新一次访问等等,如下:

(base) user@gpu-SA5212M5:~$ ls -l log.txt
-rw-rw-r-- 1 user user 0 1123 14:51 log.txt

其次,上面显示的文件占用大小为0,也就是说文件里面是没有内容的,但直觉告诉我们多出来了一个新东西是不可能不占用空间的,ok,为了验证我们的想法,我们可以首先

df -i 

这个命令是 查看每个硬盘分区的inode总数和已经使用的数量。

文件系统           Inode  已用(I)   可用(I) 已用(I)% 挂载点

/dev/sda1       29212672  1910979  27301693       7% /

注意此处的已用,下面继续创建新的空文件,再次查看:

文件系统           Inode  已用(I)   可用(I) 已用(I)% 挂载点

/dev/sda1       29212672  1910980  27301692       7% /

此时已用加一了,也就验证了空文件也是占空间的,其所占有的空间为一个inode,中文叫索引节点。那么inode又是什么?

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。inode包含文件的元信息,具体来说有以下内容:

* 文件的字节数

* 文件拥有者的User ID

* 文件的Group ID

* 文件的读、写、执行权限

* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

* 链接数,即有多少文件名指向这个inode

* 文件数据block的位置

我们可以用stat命令,查看某个文件的inode信息:

stat log.txt
(base) user@gpu-SA5212M5:~$ stat log.txt
  文件:'log.txt'
  大小:0               块:0          IO 块:4096   普通空文件
设备:801h/2049d        Inode:28444179    硬链接:1
权限:(0664/-rw-rw-r--)  Uid:( 1008/user)   Gid:( 1008/user)
最近访问:2021-11-23 14:56:26.822684678 +0800
最近更改:2021-11-23 14:56:26.822684678 +0800
最近改动:2021-11-23 14:56:26.822684678 +0800
创建时间:-

明白了inode是什么以及包含哪些信息,那么实际的inode大小是多少?

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

由于每个文件都必须有一个inode,因此有可能发生inode已经用光,但是硬盘还未存满的情况。这时,就无法在硬盘上创建新文件。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码匀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值