dd : 原来应该叫cc的,但cc被人家占用了,所以干脆叫dd好了,copy and convert
cp:copy
这两个命令都是进行拷贝工作,功能又有重叠的部分,因此有点不好理解。========================================================================
dd的用法:
http://os.51cto.com/art/201108/282933.htm
cp的用法:
http://os.51cto.com/art/201108/282888.htm
区别
1、dd是对块进行操作的(通过扇区完成),cp是对文件操作的 :
dd拷贝前后数据布局是完全一样的
cp只是将第一个硬盘的数据复制到第二个硬盘上,由于系统写硬盘不是顺序写的,哪里有足够的空间就放到哪,所以第二个硬盘相同的扇区号上的数据和第一块硬盘有可能是不一样的。
2、对于不能以文件或目录格式呈现的数据(如引导启动块的数据、RAM),cp无能为力,只能用dd。
========================================================================
cp 是针对文件系统的,文件系统有提供相关的接口,文件系统中的 文件和空间的管理,倚赖于文件系统的结构。 文件系统的中的空间的分配和管理结构跟一个 索引树 类似。 os 针对 cp 应该是提供了一些接口来拷贝的。 raw 没有这种 文件系统的结构,也就是说文件的分配是一下完成的,一般不扩展,也不存在文件系统中动态分配和碎片的问题,并且,一些os上,raw 的头部要保留一定大小的区域来保存 os 信息,这个大小随 os的不同而不同。 所以实际上,就简单地理解为 cp 是利用了os拷贝文件系统中文件的接口。 而cp不能对raw 进程拷贝,dd 则实现了 对 指定 文件的任意起点和结束点的 拷贝。至于为什么不让cp支持对 raw 设备的拷贝,你可以去问 cp 的开发者。我们也不清楚是不是历史原因造成的 ![]() |