创建特定长度的二进制文件

Baz*_*Baz 2 osx terminal command

我希望运行一个命令,该命令将创建一个二进制文件,其中在发出命令时指定了文件的长度。

Ste*_*ris 6

如果你有这个truncate命令,那么它可以用来创建一个任意大小的文件:

例如

% truncate -s 8192 foo
% ls -l foo
-rw-r--r-- 1 sweh sweh 8192 Aug 21 16:01 foo
Run Code Online (Sandbox Code Playgroud)

如果您没有,那么您可以使用该dd命令执行类似操作:

% dd if=/dev/zero of=bar bs=1c count=0 seek=8192   
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000116926 s, 0.0 kB/s

% ls -l bar
-rw-r--r-- 1 sweh sweh 8192 Aug 21 16:04 bar
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,如果文件系统支持,这将创建一个“稀疏”文件。

如果您希望文件占用空间,则指定 acount和 noseek

% dd if=/dev/zero of=bar bs=1c count=10000000
Run Code Online (Sandbox Code Playgroud)

这可能很慢,所以有时值得以更大的块做事。例如用分配的空间创建一个 10M 的文件

% dd if=/dev/zero of=bar bs=1M count=10
Run Code Online (Sandbox Code Playgroud)