首页 > 系统相关 >Linux-文件与目录操作命令-dd与cp的区别

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

时间:2022-11-09 09:45:09浏览次数:35  
标签:13 操作命令 456123 -- dd Linux txt root

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

 

标签:13,操作命令,456123,--,dd,Linux,txt,root
From: https://www.cnblogs.com/joyware/p/16872539.html

相关文章

  • Linux包管理学习
    删除rc状态的包:ubuntu下,用apt-getremove某个软件包后,用dpkg-l查看,有些包变成rc状态rc状态的意思是:r:thepackageismarkedforremoval.c:theconfigurationf......
  • Linux学习笔记(8)——正则表达式与文件格式化处理
    正则表达式与文件格式化处理正则表达式与文件格式化处理一、什么是正则表达式?二、基础正则表达式2.1语系对正则表达式的影响2.2grep的一些高级选项2.3基础正则......
  • Linux操作系统随笔2
    发现问题,查找原因,解决并记录。这是很好的——GaryCurp_2022.11.8今天还是继续搭建环境,教材到CentOS7导入hadoop包时候注释给出了两种不认识的导入方法,所以想要了解一下,然......
  • Linux操作系统随笔
    感觉更喜欢dos——GaryCurp_202.11.7环境:CentOS7X64设置默认进入命令行界面(前提是安装了GUI界面,不然也只有dos界面)#systemctlset-defaultmulti-user.target //默......
  • linux_编写一个shell脚本
    linux|编写一个shell脚本编写第一个shell$vimhello.sh#!/bin/bashecho"helloworld"$chmod777hello.sh$./hello.shShell变量系统变量用户自定义变量定......
  • linux 进程管理
    Linux进程管理linux中每一个运行中的程序叫做进程,每个运行中的进程都会分配一个ID号大多系统进程运行在后台,常驻在系统中直到关机才会结束查看Linux的系统进程ps$ps......
  • 并行训练算法一锅炖: DDP, TP, PP, ZeRO
    本文主要参考ColossalAI论文Colossal-AI:AUnifiedDeepLearningSystemForLarge-ScaleParallelTrainingColossalAI框架开源提供了本文介绍的所有并行训练:https......
  • valheim英灵神殿Linux使用docker开服
    valheim英灵神殿Linux使用docker开服使用机器:2核4G的Ubuntu,swap设置为8G(满足配置能装docker的Linux就行)在docker官网的镜像站有别人封装好的镜像,我们下载下来启动就可......
  • Linux多线程开发
    1.线程线程概述与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享......
  • Linux高并发网络编程开发——广播-组播-本地套接字
    在学习Linux高并发网络编程开发总结了笔记,并分享出来。有问题请及时联系博主:​​Alliswell_WP​​,转载请注明出处。10-Linux系统编程-第14天(广播-组播-本地套接字)一、学习目......