在linux系统中,用户可以使用vi、touch等命令快速的创建一些文件,不过这些文件所占用的系统内容较少,要是批量制造多个文件,也比较繁琐,因此,在linux系统中,有专门的命令用来创建M或者G大小的文件。通过创建单位为M或者G大小的文件,可以很方便的测试验证linux的性能和稳定性。
dd命令linux系统下的dd命令,不仅用于复制文件和转换文件的格式,同时也可以创建指定大小的文件,不过该命令需要操作硬盘,因此,创建文件的速度和硬盘的读写效率有关系,当文件过大且硬盘的读写效率慢时,该命令需要一定的时间才能创建完成。如图1,在使用dd命令创建的时候,同时使用time命令计算,该命令所花费的时间:
图1
truncate命令truncate命令则是将文件缩减或增大指定大小,创建指定文件的时候,需要使用-s参数,并带上需要创建的文件大小及单位,单位默认为字节。如图2,同样使用time命令计算truncate命令创建1G大小的文件所需要的时间:
图2
fallocate命令fallocate命令在linux系统中时用于分配或取消分配文件空间的命令,在创建文件的时候,不会写入数据到文件,且fallocate命令时将块预分配给文件,因此不需要对数据块进行IO操作,如图:
图3
从上面三个命令创建文件大小的时间可以得出,创建相同大小的文件,所需要的时间是dd命令 > fallocate命令 > truncate命令。
不过对于fallocate命令和truncate命令,虽然truncate命令创建文件的时间更短,但是创建后的文件,使用du命令查看文件大小为0,只能通过ls -lh命令查看文件大小,而fallocate命令创建的文件,du命令和ls -lh命令都可以查看文件的大小,因此个人认为,fallocate命令比truncate命令更适合用于创建大文件。