在Linux中创建一定大小的文件
Contents
1. 概述
作为 Linux 用户,我们经常对文件进行各种操作。一个常见的操作是创建一个一定大小的文件。 在本教程中,我们将讨论实现此目的的各种方法。
2. 使用fallocate命令
fallocate 是一个通过创建文件来分配磁盘空间的简单命令。让我们创建一个 100 MiB 的文件:
$ fallocate -l 100M file1.txt
$ ls -lh file1.txt
-rw-rw-r-- 1 groot groot 100M May 15 20:26 file1.txt
在这种情况下,我们使用*-l* 参数来表示文件的长度(以字节为单位)。
fallocate命令还接受人类可读格式的大小,如千字节 (K)、兆字节 (M)和千兆字节 (G)。
3. 使用truncate命令
*truncate *命令可以将文件扩展或收缩到给定的大小。让我们用它来创建一个 200 MiB 的文件:
$ truncate -s 200M file2.txt
$ ls -lh file2.txt
-rw-rw-r-- 1 groot groot 200M May 15 20:36 file2.txt
在这里,我们使用*-s*参数来表示文件的大小(以字节为单位)。
请注意,如果文件存在并且它小于使用-s*选项指定的文件大小,则文件大小将增加到使用 ASCII NUL 字节的请求大小。如果现有文件的大小更大,则将其截断为请求的大小。*
4. 使用head和tail命令
head 命令可以与*/dev/zero*文件一起使用,以创建一个填充了一组 ASCII NUL 字符的文件:
$ head --bytes 300K /dev/zero > file3.txt
$ ls -lh file3.txt
-rw-rw-r-- 1 groot groot 300K May 15 20:47 file3.txt
在这种情况下,–bytes选项表示所需的文件大小(以字节为单位)。 同样,tail 命令也可以同样的方式使用:
$ tail --bytes 1G /dev/zero > file4.txt
$ ls -lh file4.txt
-rw-rw-r-- 1 groot groot 1.0G May 15 20:52 file4.txt
5. 使用dd命令
dd 命令转换和复制文件。让我们使用dd创建一个 10 MiB 的文件:
$ dd if=/dev/zero of=file5.txt bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.0387031 s, 271 MB/s
$ ls -lh file5.txt
-rw-rw-r-- 1 groot groot 10M May 15 20:58 file5.txt
我们来看看论据:
- if 表示输入文件
- of 代表输出文件
- bs 表示块大小(以字节为单位)
- count 表示要复制的块数