Linux-文件与目录操作命令-dd与cp的区别

1.dd 命令用于读取、转换并输出数据。

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

1.1 参数说明:

if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=<关键字>,关键字可以有以下11种:
conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swap:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息

1.2 实例

  1.2.1 复制文件内容

[root@VM-4-13-centos dd]# cat 1.txt 
123
456123
456123
456123
456123
456123
456123
456123
456123
456123
456123
456
[root@VM-4-13-centos dd]# ll
总用量 4
-rw-r--r-- 1 root root 78 11月  9 09:02 1.txt
[root@VM-4-13-centos dd]# dd if=1.txt of=2.txt
记录了0+1 的读入
记录了0+1 的写出
78字节(78 B)已复制,0.000222418 秒,351 kB/秒
[root@VM-4-13-centos dd]# ll
总用量 8
-rw-r--r-- 1 root root 78 11月  9 09:02 1.txt
-rw-r--r-- 1 root root 78 11月  9 09:02 2.txt
[root@VM-4-13-centos dd]# cat 2.txt 
123
456123
456123
456123
456123
456123
456123
456123
456123
456123
456123
456

  1.2.2 把小写字母变成大写字母

[root@VM-4-13-centos dd]# cat a.txt 
aAbBcCdDeEfF
[root@VM-4-13-centos dd]# dd if=a.txt of=asup.txt  conv=ucase
记录了0+1 的读入
记录了0+1 的写出
13字节(13 B)已复制,0.000222129 秒,58.5 kB/秒
[root@VM-4-13-centos dd]# ll
总用量 16
-rw-r--r-- 1 root root 78 11月  9 09:02 1.txt
-rw-r--r-- 1 root root 78 11月  9 09:02 2.txt
-rw-r--r-- 1 root root 13 11月  9 09:08 asup.txt
-rw-r--r-- 1 root root 13 11月  9 09:06 a.txt
[root@VM-4-13-centos dd]# cat asup.txt 
AABBCCDDEEFF
[root@VM-4-13-centos dd]# 

2. cp Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。

  2.1 语法

cp [options] source dest

  2.2 参数说明

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

  2.3 实例

    2.3.1 使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:

cp –r test/ newtest  

注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R 。

3.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无能为力。

 

posted @ 2022-11-09 09:37  家乐福的搬砖日常  阅读(750)  评论(0编辑  收藏  举报