当前位置: 首页 > news >正文

Linux下快速创建大文件的4种方法总结

1、使用 dd 命令创建大文件

dd 命令用于复制和转换文件,它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。

假设我们要创建一个名为 rumenz.img 的 2 GB 大小的文本文件,可以执行以下操作:

dd if=/dev/zero of=rumenz.img bs=2G count=1

我们可以根据需要来更改块大小和块数。例如,可以使用 bs=1M 和 count=1024 来获得 1024 Mb 的文件。

2、使用 truncate 命令创建大文件

本命令缩减或扩充指定文件的大小为指定值,参数所指定的文件如果不存在,那么该命令会创建这个文件。

如果一个文件的大小比参数指定的大,那么超出的部分就会被丢弃;如果一个文件比参数指定的小,那么文件会被扩充,并且被扩充的部分(空洞)在被读取的时候是字节0。

truncate 命令将一个文件缩小或者扩展到所需大小,使用 -s 选项来指定文件的大小。

接下来,我们使用 truncare 命令来创建一个 2GB 大小的文件。

truncate -s 2G rumenz.img

可以使用ls -lh rumenz.img命令查看生成的文件。默认情况下,如果请求的输出文件不存在,truncate 命令将创建新文件,我们可以使用 -c 选项来避免创建新文件。

3、使用 fallocate 命令创建大文件

fallocate命令可能是Linux中可以用来创建文件的鲜为人知的命令之一。fallocate用于将块预分配给文件。对于支持fallocate系统调用的文件系统,这可以通过分配块并将其标记为未初始化来快速完成,因此不需要对数据块进行I / O操作。

这是创建文件而不是用零填充的更快的方法,大文件几乎可以立即创建,而不必等待任何I / O操作完成。在以下文件系统上支持fallocate系统调用:btrfs、ext4、ocfs2和xfs文件系统(自内核版本v2.6.31起)。

fallocate 命令是我比较推荐的创建大文件的方法,因为它创建大文件的速度是最快的。

假设我们要创建一个 1 GB 的文件,可以执行以下操作:

fallocate -l 1G rumenz.img

可以使用ls -lh rumenz.img查看生成的文件。

4、代码创建一个累加数文件


FILESIZE = 1*1024*1024*1024 #1G
print(int(FILESIZE/256))
file = open("./Fibonaci.txt",'w+')
for i in range(int(FILESIZE/256)):for j in range(256):file.write(str(j))file.seek(0,0)
#print(file.read())
file.close()

5、结论

dd 和 truncate 创建的文件是稀疏文件。在计算机世界中,稀疏文件是一种特殊文件,具有不同的表观文件大小(它们可以扩展到的最大大小)和真实文件大小(为磁盘上的数据分配了多少空间)。

fallocate 命令则不会创建稀疏文件,而且它的速度更快,这也是我比较推荐使用 fallocate 创建大文件的原因。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】


     【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图+全套资料】


一、Python编程入门到精通

二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战  

五、一线大厂简历


六、测试开发DevOps体系  

七、常用自动化测试工具

八、JMeter性能测试  

九、总结(文末尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

相关文章:

Linux下快速创建大文件的4种方法总结

1、使用 dd 命令创建大文件 dd 命令用于复制和转换文件,它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,根据文件的大小,该命令将需要一些时间才能完成。 假设我们要创建一个名…...

用 Rufus 制作 Ubuntu 系统启动盘时,选择分区类型为MBR还是GPT?

当使用 Rufus 制作 Ubuntu 系统启动盘时,您可以根据您的需求选择分区类型,MBR(Master Boot Record)还是 GPT(GUID Partition Table)。 MBR 是传统的分区表格式,适用于大多数旧版本的操作系统和旧…...

Nodejs+vue+elementui汽车租赁管理系统_1ma2x

语言 node.js 框架:Express 前端:Vue.js 数据库:mysql 数据库工具:Navicat 开发软件:VScode 前端nodejsvueelementui, 课题主要分为三大模块:即管理员模块、用户模块和普通管理员模块,主要功能包括&#…...

Prometheus入门

Prometheus(普罗米修斯) 是一种 新型监控告警工具,Kubernetes 的流行带动了 Prometheus 的应用。 全文参考自 prometheus 学习笔记(1)-mac 单机版环境搭建[1] Mac 上安装 Prometheus brew install prometheus 安装路径在 /usr/local/Cellar/prometheus/2.20.1, 配置文件在 /usr…...

RISC-V云测平台:Compiling The Fedora Linux Kernel Natively on RISC-V

注释:编译Fedora,HS-2 64核RISC-V服务器比Ryzen5700x快两倍! --- 以下是blog 正文 --- # Compiling The Fedora Linux Kernel Natively on RISC-V ## Fedora RISC-V Support There is ongoing work to Fedora to support RISC-V hardwar…...

Vim学习(三)—— Git Repo Gerrit

Git、Gerrit、Repo三者的概念及使用 三者各自作用: git:版本管理库,在git库中没有中心服务器的概念,真正的分布式。 repo:repo就是多个git库的管理工具。如果是多个git库同时管理,可以使用repo。当然使用…...

论坛项目之用户部分

注册接口 实现思路 1.特殊字段检查(比如性别没有给出需要给出默认值) 2.对比检查两次输入的密码是否一致,不一致报错 3.利用UUID生成随机‘盐’值,并使用密码进行MD5加密后与‘盐’进行拼接,生成加密后的密码 4.创建U…...

golang内存对齐

为什么要内存对齐? CPU访问内存时,以CPU的位数为单位进行访问。 如果访问未对齐的内存,处理器需要做两次内存访问,对齐的内存的访问可能仅需要一次,利用内存对齐后提升读取速度。 golang结构体内存对齐规则 在代码编译…...

【CheatSheet】Python、R、Julia数据科学编程极简入门

《Python、R、Julia数据科学编程极简入门》PDF版,是我和小伙伴一起整理的备忘清单,帮助大家10分钟快速入门数据科学编程。 另外,最近 TIOBE 公布了 2023 年 8 月的编程语言排行榜。 Julia 在本月榜单中实现历史性突破,成功跻身 …...

【golang】怎样判断一个变量的类型?

怎样判断一个变量的类型? package mainimport "fmt"var container []string{"zero", "one", "two"} func main() {container : map[int]string{0: "zero", 1: "one", 2: "two"}fmt.Printf…...

怎么学习AJAX相关技术? - 易智编译EaseEditing

学习AJAX(Asynchronous JavaScript and XML)相关技术可以让你实现网页的异步数据交互,提升用户体验。以下是一些学习AJAX技术的步骤和资源: HTML、CSS和JavaScript基础: 首先,确保你已经掌握了基本的HTML…...

JDK、JRE、JVM:揭秘Java的关键三者关系

文章目录 JDK:Java开发工具包JRE:Java运行环境JVM:Java虚拟机关系概述 案例示例:Hello World结语 在Java世界中,你可能经常听到JDK、JRE和JVM这几个概念,它们分别代表了Java开发工具包、Java运行环境和Java…...

【reactNative混合安卓开发~使用问题持续更】

reactNative混合安卓开发 reactNative开发移动端reactNative界面开发前端init.bat文件部分组件第三方组件解析1、定义theme主题shopify/restyle;菜单导航react-navigation/drawer、react-navigation/native; RN问题记录1、使用theme.js写的公共组件报错&…...

OCR的发明人是谁?

OCR的发明背景可以追溯到早期计算机科学和图像处理的研究。随着计算机技术的不断发展,人们开始探索如何将印刷体文字转换为机器可读的文本。 OCR(Optical Character Recognition,光学字符识别)的发明涉及多个人的贡献&#xff0c…...

笔记本电脑连上WiFi之后的IP为什么会变?如何让它不变固定住?

笔记本连上WiFi后获取IP地址的过程,通常是通过DHCP (动态主机配置协议) 来完成的。默认情况下,DHCP会根据连接设备和网络状态动态地分配IP地址,因此你会看到IP地址可能经常改变。 如果你希望电脑的IP地址固定,可以尝试设置静态IP…...

【数学建模】--因子分析模型

因子分析有斯皮尔曼在1904年首次提出,其在某种程度上可以被看成时主成分分析的推广和扩展。 因子分析法通过研究变量间的相关稀疏矩阵,把这些变量间错综复杂的关系归结成少数几个综合因子,由于归结出的因子个数少于原始变量的个数&#xff0c…...

RAM不够?CUBEIDE使用CCMRAM

RAM不够?使用CCMRAM 文章目录 RAM不够?使用CCMRAM打开连接LD文件:添加代码添加标识宏使用 打开连接LD文件: 添加代码 在SECTIONS段最后加上下面代码: _siccmram LOADADDR(.ccmram); /* CCM-RAM section * * IMPORTAN…...

npm ERR! code ERESOLVEnpm ERR! ERESOLVE unable to resolve dependency tree

拉取项目到本地 执行 npm install 报错 遇到这个问题首先确认的就是版本是不是太高了,降一下版本。或者通过yarn命令替代npm install命令安装,同理,启动也可以采用yarn dev 启动代替npm run dev 下面教大家用一个NVM工具,这个工…...

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …...

Jmeter之BeanShell取出参数进行四则运算,并判断是否正确

首先调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal1做支付交易再次调用余额接口,使用正则提取响应中的余额字段,记作变量acctBal2最后在结果树中可以看到断言错误的信息,断言正确时没有提示以下是beansh…...

【FDA认证开发环境配置白皮书】:VSCode如何满足21 CFR Part 11合规要求?附可审计配置清单(仅限本期开放下载)

更多请点击: https://intelliparadigm.com 第一章:FDA认证开发环境配置白皮书导论 在医疗器械软件(SaMD)及临床决策支持系统(CDSS)的合规开发生命周期中,开发环境的可追溯性、确定性与审计就绪…...

从OCI runtime原理到实战避坑:彻底搞懂Docker容器启动流程与‘create failed’

从OCI runtime原理到实战避坑:彻底搞懂Docker容器启动流程与‘create failed’ 当你在终端输入docker run命令后,背后究竟发生了什么?这个看似简单的操作背后隐藏着一套精密的容器化技术栈。本文将带你深入Docker容器启动的全流程&#xff0c…...

告别警告!精准控制Verilog $readmemh数据位宽的实战技巧

告别警告!精准控制Verilog $readmemh数据位宽的实战技巧 每次看到仿真日志里密密麻麻的位宽不匹配警告,是不是感觉头皮发麻?这些看似无害的警告背后,往往隐藏着仿真循环异常、数据截断等严重问题。本文将带你深入理解$readmemh的位…...

Flink on YARN 实战指南:Session与Per-Job模式到底怎么选?看完这篇就懂了

Flink on YARN 生产环境决策指南:Session与Per-Job模式深度对比 当企业级流处理平台需要与YARN资源管理系统集成时,技术决策者往往面临一个关键选择:究竟该采用Session模式还是Per-Job模式?这个看似简单的选择题背后,隐…...

Arduino U8g2库:从零构建精简中文字库的完整指南

1. 为什么需要定制中文字库? 很多开发者第一次接触Arduino的OLED显示时,会发现U8g2库已经内置了中文支持,直接调用现成的字体库就能显示汉字。但当你把代码烧录到ESP8266或ESP32这类资源受限的开发板上时,可能会遇到内存不足的报错…...

AI 英语教学智能体开发

AI 英语教学智能体开发已进入“认知模拟”与“超低延迟交互”的深水区。技术栈的构建不再仅仅是调用 API,而是涉及从底层推理到上层教学法编排的整套国产化生态。以下是国内开发 AI 英语教学智能体的核心技术维度:1. 基座模型与国产化适配国内开发者目前…...

Qt:真正的门槛不是入门,而是维护

很多人第一次写 Qt 项目,感觉还挺顺:拖几个控件,连几个信号槽,按钮一按,界面动了,数据也刷出来了。那一刻很容易产生一种错觉:Qt 也没那么难嘛。 真正让人难受的,往往不是第一个版本…...

从‘淘宝店铺数据’到‘用户画像’:我是如何用PCA压缩高维特征并提升模型性能的

从‘淘宝店铺数据’到‘用户画像’:我是如何用PCA压缩高维特征并提升模型性能的 当面对淘宝店铺每天产生的海量用户行为数据时,数据分析师常常陷入两难:保留所有特征会导致"维度灾难",而随意删除特征又可能丢失关键信息…...

别再死磕DDPM了!用Score-Based Generative Modeling (SGM) 换个思路玩转扩散模型

从DDPM到SGM:探索生成模型的双轨范式革命 当开发者们还在为DDPM的噪声预测网络调参时,前沿研究已经开辟了另一条基于分数匹配的生成路径。本文将带您穿透数学表象,理解Score-Based Generative Modeling(SGM)如何通过概…...

手把手教你用ClockBuilder Pro配置SI5351A时钟芯片(附完整.h文件生成流程)

手把手教你用ClockBuilder Pro配置SI5351A时钟芯片(附完整.h文件生成流程) 在嵌入式系统和射频设计中,精确的时钟信号如同系统的心跳,而SI5351A这颗灵活的可编程时钟发生器芯片,正成为越来越多开发者的首选。不同于传…...