有关dd命令的几个简单例子

有关这个命令的具体参数和解释,大家可以man。
这篇博文的目的dd命令的简单使用,主要是从实际例子进行出发的。
首先,dd命令是转换和复制一个文件。
这个命令和cp有什么区别呢?
(1)dd是对块进行操作的,cp是对文件进行操作的。
(2)cp若干个文件之后,还是若干个文件,dd之后,相当于汇总成了一个 文件了。
具体的区别可以参考:
我们这里一起来看几个比较重要的参数吧:

输入/输出
dd if=input_file of=output_file

强迫一次只做多少个字节
cbs=my_size

跳过几个段之后才输入
seek=my_size

一次读入bytes字节(也就是一个块的大小)
ibs=byes

一次写bytes字节(也就是一个块的大小)
obs=bytes

同时设置ibs和obs
bs=bytes

从输入文件开头跳过bloks块开始复制
skip=bloks

从输出文件开头跳过bloks块开始复制(通常只有输出文件是磁盘或者磁带时有效)
seek=bloks


仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 
count=blocks 

用指定的参数转换文件。 
conv=conversion[,conversion...] 
转换参数: 
ascii 转换 EBCDIC 为 ASCII。 
ebcdic 转换 ASCII 为 EBCDIC。 
ibm 转换 ASCII 为 alternate EBCDIC. 
block 把每一行转换为长度为 cbs 的记录,不足部分用空格填充。 
unblock 使每一行的长度都为 cbs ,不足部分用空格填充。 
lcase 把大写字符转换为小写字符。 
ucase 把小写字符转换为大写字符。 
swab 交换输入的每对字节。  
noerror 出错时不停止。 
notrunc 不截短输出文件。 
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

(1)有这样一个问题: 现在需要一个大的文件进行测试,想将一个文件复制上N遍来生成这个文件。
我们使用dd命令和 /dev/zero字符设备文件来实现,
dd if=/dev/zero of=out_file
具体的实现可以参考我的博客:

(2)有一个二进制文件file1,size>2K,现在想从第64个字节处开始读取,需要读取128Bytes,另外又有文件file2,想把刚才读取的结果放到从file2开始第32个字节的开始位置,替换128Bytes,这个应该如何实现呢?
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc


<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值