Linux下生成一个大文件和清空一个大文件命令

发布时间 2023-09-25 09:57:47作者: lucky8492

生成一个大文件:
1. dd命令
dd命令的官方定义:转换和拷贝文件。一般情况下,我们使用此命令进行大文件创建,但是dd命令是实际写入硬盘,文件产生的速度取决于硬盘的读写速度,如果我们想要创建一个超大文件,速度很慢。 例如,我们创建一个3G大小的文件,命令如下:

# dd if=/dev/zero of=test.zip bs=1G count=3

命令参数说明:
if:指定输入文件名或者设备名,如果省略,则表示从标准输入读取
/dev/zero:一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空数据流
of:指定输出文件名或者设备名,如果省略,则表示写到标准输出
bs:块大小,单位可以是K、M、G
count:块数量 bs * count = 文件大小

2. truncate命令
truncate命令可以将一个文件缩小或者扩展到某个给定的大小。使用-s选项来指定文件的大小。我们生成一个1G大小的文件,命令如下:
# truncate -s 1G test-size.zip

3、 fallocate命令
fallocate命令可以为文件预分配物理空间,而不是生成一个空洞文件。使用 -l 后接空间大小,默认单位为字节,也可跟K、M、G等来指定单位。
例如:我们生成一个2G大小的文件,命令如下:
# fallocate -l 2G test.zip

 



清空一个大文件:

1. 通过重定向到null清空文件内容
# > access.log


2.使用true命令重定向清空文件
# true > access.log


3. 使用 /dev/null
# cat /dev/null > access.log
# cp /dev/null access.log

4. 使用 echo 命令
# echo "" > access.log
# echo > access.log
不换行打印
# echo -n "" > access.log


5. 使用 truncate 命令
将它与-s指定文件大小的选项一起使用。要清空文件内容使用-s 0参数。
# truncate -s 0 access.log