如何在Linux中创建具有给定大小的文件?
时间:2020-03-06 14:46:55 来源:igfitidea点击:
为了进行测试,我必须生成一定大小的文件(以测试上传限制)。
在Linux上创建一定大小的文件的命令是什么?
解决方案
使用此命令:
dd if=$INPUT-FILE of=$OUTPUT-FILE bs=$BLOCK-SIZE count=$NUM-BLOCKS
要创建一个大(空)文件,请设置$ INPUT-FILE = / dev / zero。
文件的总大小为$ BLOCK-SIZE * $ NUM-BLOCKS`。
创建的新文件将是$ OUTPUT-FILE。
dd if=/dev/zero of=my_file.txt count=12345
你可以做:
[dsm@localhost:~]$ perl -e 'print "dd if=/dev/zero of=upload_test bs=file_size count=1" x 100' > filename.ext
用要写入的字节数替换100。
dd if=/dev/zero of=the_file bs=1 count=0 seek=12345
其中file_size
是测试文件的大小(以字节为单位)
只是为了跟进Tom的帖子,我们还可以使用dd创建稀疏文件:
#include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> int main() { int fd = creat("/tmp/foo.txt", 0644); ftruncate(fd, SIZE_IN_BYTES); close(fd); return 0; }
这将在大多数unix上创建一个带有"空洞"的文件,该数据实际上不会写入磁盘,也不会占用任何空间,直到将零以外的内容写入磁盘为止。
我们可以通过编程方式执行此操作:
# du -B1 --apparent-size /tmp/foo.txt
此方法对于随后将文件映射到内存特别有用。
使用以下命令检查文件的大小是否正确:
# du /tmp/foo.txt
当心:
##代码##可能会打印0,因为如果文件系统支持,它将分配为稀疏文件。
另请参见:man 2打开,man 2截断