linux下dd,tar,cp指令的区别与适用范围

回复 收藏
linux下dd,tar,cp指令的区别与适用范围?
2011-07-20 11:39 举报
已邀请:
0

长愿相随

赞同来自:

dd与cp的区别
分类: 【Linux】 2010-12-20 18:52 79人阅读 评论(0) 收藏 举报

问:
看了一些关于dd和cp的命令,但是我始终无法明白dd和cp之间有什么不同?
不是都可以看成是备份的作用么?还有什么区别呢?
答:
1、dd是对块进行操作的,cp是对文件操作的。
2、比如有兩塊硬盤,要將第一個硬盤裏的數據複製到第二個硬盤上

dd if=/dev/hda of=/dev/hdc bs=4 count=1024
bs每次複製的塊大小
count要複製的次數

這樣第二塊硬盤的數據佈局和第一塊是完全一樣的(扇區級別,每個扇區上的數據和第一塊硬盤都是一樣的)

cp只是將第一個硬盤的數據複製到第二個硬盤上,由於系統寫硬盤不是順序寫的,哪裏有足夠的空間就放到哪,所以第二個硬盤相同的扇區號上的數據和第一塊硬盤有可能是不一樣的。

dd:块界别拷贝
cp:文件目录界别拷贝

    举个例子,如图所示。可以看出,dd将原始数据(raw data)按照数据源的格式原封不动的拷贝到目的地;cp将文件和目录拷贝到目的地后按照目的地的格式排列新数据。注意:对于不能以文件或目录格式呈现的数据(如引导启动块的数据),cp无能为力。
0

长愿相随

赞同来自:

铭哥,我这是从网上找的,希望你能够再详细哈。
0

阿铭 管理员

赞同来自:

看2楼的回复,已经很明白了。我就再唠叨两句吧。
首先,我研究的也不是非常的详细,只能按照我的理解去说一下。
dd, tar, cp 这些命令虽然都能备份磁盘上的数据,但是根本区别在于dd是针对磁盘的块来操作的,它不在乎你磁盘上有没有数据,以及磁盘上的数据是如何放置,如何排序的,它是把磁盘的所有块都搬到另一个磁盘或者分区上。而tar以及cp只是针对数据来说的,它们不管这些数据原来放在哪里,它们只管把数据复制然后放到你指定的位置(目录),数据的排列和原来不见得一样。
cp和tar,两者的区别在于,cp只是简单的把数据从一个地方复制然后放到另一个地方,而tar是打包,把很多数据放到一个文件中(包裹起来)。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: