Linux中关于dd命令的使用实例教程

发布时间 - 2017-05-28 00:00:00    点击率:

dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。下面这篇文章主要给大家介绍了关于linux中dd命令使用的相关资料,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

本文主要给大家介绍了关于Linux中dd命令使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

一、Linux dd命令用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

使用方法:dd [OPERAND]

参数注释:

 bs=BYTES  read and write BYTES bytes at a time (also see ibs=,obs=)
 cbs=BYTES  convert BYTES bytes at a time
 conv=CONVS  convert the file as per the comma separated symbol list
 count=N   copy only N input blocks
 ibs=BYTES  read BYTES bytes at a time (default: 512)
 if=FILE   read from FILE instead of stdin(默认为标准输入)
 iflag=FLAGS  read as per the comma separated symbol list
 obs=BYTES  write BYTES bytes at a time (default: 512)
 of=FILE   write to FILE instead of stdout(默认为标准输出)
 oflag=FLAGS  write as per the comma separated symbol list
 seek=BLOCKS  skip BLOCKS obs-sized blocks at start of output
 skip=BLOCKS  skip BLOCKS ibs-sized blocks at start of input
 status=WHICH WHICH info to suppress outputting to stderr;
     'noxfer' suppresses transfer stats, 'none' suppresses all

CONVS的可选参数

 ascii  from EBCDIC to ASCII
 ebcdic from ASCII to EBCDIC
 ibm  from ASCII to alternate EBCDIC
 block  pad newline-terminated records with spaces to cbs-size
 unblock replace trailing spaces in cbs-size records with newline
 lcase  change upper case to lower case
 nocreat do not create the output file
 excl  fail if the output file already exists
 notrunc do not truncate the output file
 ucase  change lower case to upper case
 sparse try to seek rather than write the output for NUL input blocks
 swab  swap every pair of input bytes
 noerror continue after read errors
 sync  pad every input block with NULs to ibs-size; when used
   with block or unblock, pad with spaces rather than NULs
 fdatasync physically write output file data before finishing
 fsync  likewise, but also write metadata

FLAGS的可选参数

 append append mode (makes sense only for output; conv=notrunc suggested)
 direct use direct I/O for data
 directory fail unless a directory
 dsync  use synchronized I/O for data
 sync  likewise, but also for metadata
 fullblock accumulate full blocks of input (iflag only)
 nonblock use non-blocking I/O
 noatime do not update access time
 noctty do not assign controlling terminal from file
 nofollow do not follow symlinks
 count_bytes treat 'count=N' as a byte count (iflag only)

注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:

c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M

GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y

二、使用实例

1、将本地的/dev/hdb整盘备份到/dev/hdd

dd if=/dev/hdb of=/dev/hdd

2、将/dev/hdb全盘数据备份到指定路径的image文件

dd if=/dev/hdb of=/root/image

3、备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径

dd if=/dev/hdb | gzip > /root/image.gz

4、把一个文件拆分为3个文件

#文件大小为2.3k
[Oracle@rhel6 ~]$ ll db1_db_links.sql 
-rw-r--r-- 1 oracle oinstall 2344 Nov 21 10:39 db1_db_links.sql
#把这个文件拆成每个文件1k,bs=1k,count=1,使用skip参数指定在输入文件中跳过多少个bs支读取
[oracle@rhel6 ~]$ dd if=db1_db_links.sql of=dd01.sql bs=1k count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 4.5536e-05 s, 22.5 MB/s
[oracle@rhel6 ~]$ dd if=db1_db_links.sql of=dd02.sql bs=1k count=1 skip=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000146387 s, 7.0 MB/s
[oracle@rhel6 ~]$ dd if=db1_db_links.sql of=dd03.sql bs=1k count=1 skip=2
0+1 records in
0+1 records out
296 bytes (296 B) copied, 0.000204216 s, 1.4 MB/s
#拆分出的文件
[oracle@rhel6 ~]$ ll dd*sql
-rw-r--r-- 1 oracle oinstall 1024 May 20 14:58 dd01.sql
-rw-r--r-- 1 oracle oinstall 1024 May 20 14:58 dd02.sql
-rw-r--r-- 1 oracle oinstall 296 May 20 14:58 dd03.sql

5、把拆分出的文件合并为1个

#合并操作,此时用到seek参数,用于指定在输入文件中跳过的bs数
[oracle@rhel6 ~]$ dd of=1.sql if=dd01.sql 
2+0 records in
2+0 records out
1024 bytes (1.0 kB) copied, 0.000176 s, 5.8 MB/s
[oracle@rhel6 ~]$ dd of=1.sql if=dd02.sql bs=1k seek=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000124124038 s, 8.3 MB/s
[oracle@rhel6 ~]$ dd of=1.sql if=dd03.sql bs=1k seek=2
0+1 records in
0+1 records out
296 bytes (296 B) copied, 0.00203881 s, 145 kB/s
#与拆分前的文件进行校验
[oracle@rhel6 ~]$ diff 1.sql db1_db_links.sql
[oracle@rhel6 ~]$

6、在输出文件中指定的位置插入数据,而不截断输出文件

需要使用conv=notrunc参数

[oracle@rhel6 ~]$ dd if=2.sql of=1.sql bs=1k seek=1 count=2 conv=notrunc

总结


# linux  # 并在  # 给大家  # 可选  # 跳过  # 默认为  # 相关内容  # 有一定  # 而不  # 朋友们  # 来看看 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: C++时间戳转换成日期时间的步骤和示例代码  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel怎么实现验证码(Captcha)功能  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何在腾讯云免费申请建站?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何快速搭建高效可靠的建站解决方案?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  用yum安装MySQLdb模块的步骤方法  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  利用python获取某年中每个月的第一天和最后一天  深圳网站制作平台,深圳市做网站好的公司有哪些?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  如何选择PHP开源工具快速搭建网站?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel如何创建自定义中间件?(Middleware代码示例)  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel storage目录权限问题_Laravel文件写入权限设置  Python文本处理实践_日志清洗解析【指导】  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel如何实现多对多模型关联?(Eloquent教程)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  详解Huffman编码算法之Java实现  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  如何解决hover在ie6中的兼容性问题  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何在IIS7中新建站点?详细步骤解析  如何用狗爹虚拟主机快速搭建网站?  海南网站制作公司有哪些,海口网是哪家的?  如何生成腾讯云建站专用兑换码?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何在建站之星绑定自定义域名?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何在Windows 2008云服务器安全搭建网站?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  企业网站制作这些问题要关注  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?