很多时候我们需要有一个大文件用于测试服务器空间或测试一些脚本命令等。

使用dd if=/dev/zero of=文件 bs=块大小 count=块数量 seek=指定一开始跳过的区块数量

if 指定输入文件

of 指定输出文件

bs 块的大小,也是是1k,2k,3M等

count 块数量

seek 指定一开始跳过的区块数量

而/dev/zero 是一个不断输出0的设备

实例1.  不存在seek时,创建的文件真实大小就是20M

[root@www ~]# dd if=/dev/zero of=test.log bs=10M count=2
记录了2+0 的读入
记录了2+0 的写出
20971520字节(21 MB)已复制,0.0593294 秒,353 MB/秒
You have mail in /var/spool/mail/root
[root@www ~]# ls -lh test.log
-rw-r--r-- 1 root root 20M 8月  29 04:36 test.log
[root@www ~]# du -sh /root
528M    /root
[root@www ~]# rm -r test.log
rm:是否删除普通文件 "test.log"?y
[root@www ~]# du -sh /root
508M    /root
[root@www ~]#

实例2.指定一开始跳过的区块数量为10.显示的容量为30M,实际上是20M

[root@www ~]# dd if=/dev/zero of=test.log bs=1M count=20 seek=10
记录了20+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.0134263 秒,1.6 GB/秒
[root@www ~]# du -sh test.log
20M     test.log
[root@www ~]# ls -lh test.log
-rw-r--r-- 1 root root 30M 8月  29 04:50 test.log
[root@www ~]#

实例3:挂载大文件

[root@www ~]# dd if=/dev/zero of=loopdev bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.167215 s, 62.7 MB/s
[root@www ~]# ll loopdev
-rw-r--r--. 1 root root 10485760 Sep  9 20:19 loopdev
[root@www ~]# mount loopdev /home
mount: you must specify the filesystem type
[root@www ~]# mkfs.ext4 loopdev
mke2fs 1.41.12 (17-May-2010)
loopdev is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
2560 inodes, 10240 blocks
512 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=10485760
2 block groups
8192 blocks per group, 8192 fragments per group
1280 inodes per group
Superblock backups stored on blocks:
        8193
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@www ~]# ls -l loopdev
-rw-r--r--. 1 root root 10485760 Sep  9 20:21 loopdev
[root@www ~]# mkdir /test_loop
[root@www ~]# mount loopdev /test_loop
mount: /root/loopdev is not a block device (maybe try `-o loop'?)  #特殊设备挂载,需要指定loop
[root@www ~]# mount -o loop loopdev /test_loop
[root@www ~]#