【微知】如何快速指定一个固定大小的文件?(dd if=/dev/zero of=testfile bs=1K count=1、truncate -s 1M testfile)

背景

有些时候测试磁盘,或者测试共享内存(比如tmpfs),或者分布式文件系统挂在的文件,需要创建较大的文件,如何快速创建?

命令

使用dd

dd命令能够从标准输入或文件中复制数据到另一个文件

dd if=/dev/zero of=testfile bs=1K count=1
  • if=/dev/zero:输入文件为/dev/zero,该文件会持续输出空字节(\0)。
  • of=testfile:指定输出文件名为testfile
  • bs=1K:意味着每次读写的数据块大小是1KB。
  • count=10:表示总共复制10个数据块。
    该令创建一个大小为1KB的文件。
    虽然这里常见大小是1KB的文件,如果文件路径在tmpfs中,对于shmem的大小会按照4KB的单元进行增长。
    比如创建:
    1KB、2KB、3KB、4KB:对于 /proc/meminfo中shmem都是增加4KB
    5KB就会再增加4KB

修改前:
在这里插入图片描述
添加1KB大小的文件。
在这里插入图片描述
内存变化4KB
在这里插入图片描述

再修改文件大小为3K的文件:
在这里插入图片描述
内存还是不变化:
在这里插入图片描述
创建5KB的就又增加4KB
在这里插入图片描述

在这里插入图片描述

使用truncate

truncate命令能够把文件大小调整为指定的值。若文件不存在,它会先创建文件,然后将其大小设置为指定值。

truncate -s 1M testfile
  • -s 10M:将文件大小设置为1MB。

dd命令相比,truncate命令创建文件的速度更快,因为它只是对文件系统进行操作,不会真正写入数据。
实操:
创建前:
在这里插入图片描述
创建1M的文件
在这里插入图片描述
不变化:
在这里插入图片描述
并未实际在内存系统创建:
再次打开文件写入试试,变化了,应该是写入实际触发。(类似copy on write)。但是事件分配页面大小稍微大了28K。主体不影响逻辑
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值