系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 系统教程 > Linux教程 > 详细页面

Linux如何在 1 s内快速创建数百G超大文件教程?

时间:2020-06-12来源:www.pcxitongcheng.com作者:电脑系统城

常规的创建文件方式有:

  1. touch
  2. vi(m)
  3. tee
  4. > 或 >>

但是这几种都只适合创建小的文本文件,某些情况下出于测试的需要,你需要快速创建一个超大的文件,可能要 上百G。这时候要使用上面几个命令,你可能要等一天的时间,效率非常低。

接下来介绍几种我常用的方法

1. dd#

dd命令,可以从标准输入或指定的文件中读取数据,拷贝至新文件。


 
Copy
Copy
$ dd if=/dev/zero of=big_file count=10 bs=1G

使用 time 命令,可以算出创建一个 10G的文件需要耗时多久?


 
Copy
Copy
$ time dd if=/dev/zero of=big_file count=10 bs=1G 10+0 records in 10+0 records out 10737418240 bytes (11 GB) copied, 7.93627 s, 1.4 GB/s real 0m7.941s user 0m0.000s sys 0m7.935s

花了将近8秒的时间


 
Copy
Copy
$ ls -lh big_file -rw-r--r-- 1 root root 10G Jun 2 10:57 big_file

2. fallocate#

fallocate命令可以为文件预分配物理空间。-l后接空间大小,默认单位为字节。也可后跟k、m、g、t、p、e来指定单位,分别代表KB、MB、GB、TB、PB、EB。


 
Copy
Copy
$ fallocate -l 10G big_file

使用 time 命令,可以算出创建一个 10G的文件需要耗时多久?


 
Copy
Copy
$ time fallocate -l 10G big_file real 0m0.002s user 0m0.000s sys 0m0.001s

居然只有 0.001秒。


 
Copy
Copy
$ ls -lh big_file -rw-r--r-- 1 root root 10G Jun 2 11:01 big_file

使用 du 命令,查看是否是真正创建了一个 10G大小的文件?从结果来看,是的。


 
Copy
Copy
$ du -sh big_file 10G big_file

3. truncate#

truncate命令可以将文件缩减或扩展为指定大小,使用-s参数设置大小。


 
Copy
Copy
$ truncate -s 10G big_file

使用 time 命令,可以算出创建一个 10G的文件需要耗时多久?


 
Copy
Copy
$ time truncate -s 10G big_file real 0m0.001s user 0m0.000s sys 0m0.001s

也是只有 0.001 秒。

不过与 fallocate 不同的是,allocate 创建的文件是真实大小,而 truncate 创建的并不是。

使用 ls 和 du 命令,查看的结果是不一样的。


 
Copy
Copy
$ ls -lh big_file -rw-r--r-- 1 root root 10G Jun 2 11:11 big_file $ du -sh big_file 0 big_file

由此可见 truncate 的作用是指定一个文件的大小,如果该文件不存在,就会创建该文件。如果指定文件的大小小于原先的大小,会丢失内容。

这个命令指定的文件大小其实是虚拟的。只是显示出来的大小。如果你指定一个非常大的文件。其实服务器剩余空间并不会减少。


以上,是我常用的几种创建大文件的方法,可以根据不同的使用场景进行选择,我一般使用的是 fallocate,速度够快,也是也会真实地占用磁盘空间,符合真实的测试场景。

分享到:

相关信息

  • linux 文件权限怎么解析

    常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...

    2024-07-07

  • 如何使用WPSeku找出 WordPress 安全问题?

    然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...

    2024-07-03

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载