使用dd命令切割文件
2014-11-08 22:14
155 查看
看实验
dd还原
验证结果:
为了验证切割后的有效性,创建了a.txt,b.txt 和一个10M的空文件然后压缩 [root@localhost test]# echo 1 >> a.txt [root@localhost test]# echo 2 >> b.txt [root@localhost test]# dd if=/dev/zero of=testfile bs=1M count=10 10+0 records in 10+0 records out 10485760 bytes (10 MB) copied, 0.016804 seconds, 624 MB/s [root@localhost test]# tar cvf test.tar.gz testfile a.txt b.txt testfile a.txt b.txt [root@localhost test]# ls a.txt b.txt testfile test.tar.gz [root@localhost test]# rm -f a.txt b.txt testfile [root@localhost test]# [root@localhost test]# [root@localhost test]# du -h test.tar.gz 11M test.tar.gz [root@localhost test]# du test.tar.gz 10268 test.tar.gz通过du命令查看文件大小为10268k,下面用dd切割为3份,5000+5000+268
[root@localhost test]# dd if=test.tar.gz of=test.tar.gz_1 bs=1k count=5000 5000+0 records in 5000+0 records out 5120000 bytes (5.1 MB) copied, 0.019158 seconds, 267 MB/s 注意这里skip=5000,意思就是说从第5000k开始写数据 [root@localhost test]# dd if=test.tar.gz of=test.tar.gz_2 bs=1k skip=5000 count=5000 5000+0 records in 5000+0 records out 5120000 bytes (5.1 MB) copied, 0.021693 seconds, 236 MB/s 因此这里就要从第10000k开始写数据,这里就不需要加count了读取到文件最后一个块 [root@localhost test]# dd if=test.tar.gz of=test.tar.gz_3 bs=1k skip=10000 250+0 records in 250+0 records out 256000 bytes (256 kB) copied, 0.000541 seconds, 473 MB/s 从ll命令可以看到3个文件大小和正好等于切割前的文件大小 [root@localhost test]# ll 总计 20548 -rw-r--r-- 1 root root 10496000 09-02 01:33 test.tar.gz -rw-r--r-- 1 root root 5120000 09-02 01:35 test.tar.gz_1 -rw-r--r-- 1 root root 5120000 09-02 01:36 test.tar.gz_2 -rw-r--r-- 1 root root 256000 09-02 01:37 test.tar.gz_3
dd还原
[root@localhost test]# dd if=test.tar.gz_1 of=test_new.tar.gz 10000+0 records in 10000+0 records out 5120000 bytes (5.1 MB) copied, 0.037999 seconds, 135 MB/s seek=5000 由于前面我们已经往test_new.tar.gz写入了5000k,因此我们需要从第5000k也就是第5000个块开始写 [root@localhost test]# dd if=test.tar.gz_2 of=test_new.tar.gz bs=1k seek=5000 5000+0 records in 5000+0 records out 5120000 bytes (5.1 MB) copied, 0.047617 seconds, 108 MB/s 前面已经写入了10000k,因此这里seek=10000 [root@localhost test]# dd if=test.tar.gz_3 of=test_new.tar.gz bs=1k seek=10000 250+0 records in 250+0 records out 256000 bytes (256 kB) copied, 0.001094 seconds, 234 MB/s
验证结果:
[root@localhost test]# ll 总计 30816 -rw-r--r-- 1 root root 10496000 09-02 01:50 test_new.tar.gz -rw-r--r-- 1 root root 10496000 09-02 01:44 test.tar.gz -rw-r--r-- 1 root root 5120000 09-02 01:44 test.tar.gz_1 -rw-r--r-- 1 root root 5120000 09-02 01:44 test.tar.gz_2 -rw-r--r-- 1 root root 256000 09-02 01:45 test.tar.gz_3 如果前面还原有问题这里解压将会报错。 [root@localhost test]# tar xvf test_new.tar.gz testfile a.txt b.txt [root@localhost test]# cat a.txt 1 [root@localhost test]# cat b.txt 2
相关文章推荐
- 在Linux下创建一个大文件,即制造磁盘IO异常,使用dd命令
- 黑马程序员-常用的IO类使用,PrintStream,SequenceInputStream,文件切割,ObjectStream
- 在Linux下创建一个大文件,即制造磁盘I/O异常,使用dd命令
- Linux 使用 logrotate 来切割日志文件
- Linux使用logrotate来切割日志文件
- 文件切割合并器6.0 下载和使用视频…
- IO(三) 文件切割合并,Properties的使用
- 嵌入式:使用dd命令制作烧写文件
- lvm2、btrfs文件系统、dd命令解释与使用
- java中使用IO将文件切割后保存(FileInputStream、FileOutputStream)
- 使用hash方法切割文件
- 【Linux】使用DD命令创建文件
- linux下使用dd命令写入镜像文件到u盘
- 使用dd命令创建一个测试文件
- Linux下使用cronolog切割服务器日志文件的方法
- 日志文件切割服务logrotate配置及crontab定时任务的使用
- 使用WinRar也能切割文件
- Linux使用dd命令备份大文件显示进度
- 使用awk按照行数切割文件
- Linux使用logrotate来切割日志文件