文章目录

文章目录

dd

命令介绍

语法格式

基本参数

参考实例

1)生成一个200M的新文件

2)拷贝文件的100个字节

3)将文件的字母全部转换成大写

4)将linux自带的光盘制作成iso格式的镜像文件

5)使用dd命令制作1G的交换分区

6)将文件大写字母转换为小写字母

命令总结

dd

命令介绍

先看下帮助文档里的含义

NAME
       dd - convert and copy a file

可以看出来dd(disk dump)的功能是用来转换和拷贝文件的,并且使用dd命令可以按照指定大小的数据块来拷贝文件,并在拷贝的过程中对内容进行转换。

语法格式

继续来看下命令帮助文档内的具体使用

语法:dd 【参数】【对象】

SYNOPSIS
       dd [OPERAND]...
       dd OPTION

基本参数

参数以表格显示

if=文件名 输入的文件名,默认为标准输入,即指定源文件
of=文件名 输出的文件名,默认为标准输出,即指定目标文件
bs=bytes 同时设置读入/输出的“块”的大小为bytes个字节
ibs=bytes 一次读入bytes个字节,即指定一个块的大小为bytes个字节
obs=bytes 一次输出bytes个字节,即指定一个块的大小为bytes个字节
cbs=bytes 一次转换bytes个字节,即指定转换缓冲区大小
count=blocks 设置“块”的数量
skip=blocks 从输入文件开头跳过blocks个块再开始复制
seek=blocks 从输出文件开头跳过blocks个块后再开始复制
conv=<关键字> 设置关键字信息来转换文件

conv的关键字有以下几种:

  • conversion:用指定的参数转换文件。
  • ascii:转换ebcdic为ascii
  • ebcdic:转换ascii为ebcdic
  • ibm:转换ascii为alternate ebcdic
  • block:把每一行转换为长度为cbs,不足部分用空格填充
  • unblock:使每一行的长度都为cbs,不足部分用空格填充
  • lcase:把大写字符转换为小写字符
  • ucase:把小写字符转换为大写字符
  • swap:交换输入的每对字节
  • noerror:出错时不停止
  • notrunc:不截短输出文件
  • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

参考实例

1)生成一个200M的新文件

/dev/zero的文件可以产生无穷的数据,使用这个设备配合dd使用,就能创建一个指定大小的文件。

[root@localhost ~]# dd if=/dev/zero of=1.txt bs=10M count=20
记录了20+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,3.69047 秒,56.8 MB/秒
[root@localhost ~]# ll -h 1.txt
-rw-r--r--. 1 root root 200M 2月  26 11:16 1.txt

2)拷贝文件的100个字节

可以用来拷贝源文件的数据到目标文件中, 设置要拷贝的大小为100字节,数量为1个。

[root@localhost ~]# dd if=/etc/passwd of=passwd.txt count=1 bs=100
记录了1+0 的读入
记录了1+0 的写出
100字节(100 B)已复制,0.000323161 秒,309 kB/秒
[root@localhost ~]# cat passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

3)将文件的字母全部转换成大写

将源文件转换成目标文件,使用关键字“ucase”,意将小写的字符转换成大写的。

[root@localhost ~]# dd if=/etc/passwd of=passwd1.txt conv=ucase
记录了4+1 的读入
记录了4+1 的写出
2290字节(2.3 kB)已复制,0.00014741 秒,15.5 MB/秒
[root@localhost ~]# cat passwd1.txt | head
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN
DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN
ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN

4)将linux自带的光盘制作成iso格式的镜像文件

centos7.iso文件系统格式为iso 9660,表示此文件为镜像文件

[root@localhost ~]# dd if=/dev/cdrom of=centos7.iso
记录了9203712+0 的读入
记录了9203712+0 的写出
4712300544字节(4.7 GB)已复制,228.538 秒,20.6 MB/秒
[root@localhost ~]# file centos7.iso
centos7.iso: # ISO 9660 CD-ROM filesystem data 'CentOS 7 x86_64' (bootable)

5)使用dd命令制作1G的交换分区

制作交换分区,先拷贝一个1G的文件出来 ,再使用mkswap命令进行强制格式化后,设置文件权限为600后就可以进行激活挂载了。

[root@localhost ~]# dd if=/dev/zero of=a.txt bs=1M count=1000  #拷贝1G的文件
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,25.3194 秒,41.4 MB/秒
[root@localhost ~]# mkswap -f a.txt                        #使用-f强制格式化文件
正在设置交换空间版本 1,大小 = 1023996 KiB
无标签,UUID=15c1a284-e382-40c7-9787-4b52d4d52652
#需要设置文件权限为600才能挂载,否则会显示不安全的权限
[root@localhost ~]# chmod 600 a.txt
[root@localhost ~]# swapoff -a         #关闭所有交互分区
[root@localhost ~]# free -htotal        used        free      shared  buff/cache   available
Mem:           3.8G        883M        105M         27M        2.9G        2.7G
Swap:            0B          0B          0B
[root@localhost ~]# swapon a.txt      #激活此文件
[root@localhost ~]# free -htotal        used        free      shared  buff/cache   available
Mem:           3.8G        883M        142M         27M        2.8G        2.7G
Swap:          999M          0B        999M
#将设置好的交换分区写入到/etc/fstab文件,使其能开机自启
[root@localhost ~]# echo "/root/a.txt swap swap defaults 0 0" >> /etc/fstab

6)将文件大写字母转换为小写字母

刚可以将小写字母转换成大写字母,也可将大写字母转换成小写字母。

[root@localhost ~]# dd if=passwd1.txt of=passwd2.txt conv=lcase
记录了4+1 的读入
记录了4+1 的写出
2290字节(2.3 kB)已复制,0.00987157 秒,232 kB/秒
[root@localhost ~]# cat passwd2.txt | head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

命令总结

这个命令正常使用还是挺有意思的,参数上看着是比较多的内容,实际有几个是比较常能用来搭配使用的,若觉得以上内容还行的,可以点赞支持一下!

Linux基础命令-dd拷贝、转换文件相关推荐

  1. Linux 基础命令(四)—— 文件的权限和访问控制列表(ACL)

    Linux 基础命令(四)-- 文件的权限和访问控制列表(ACL)  Published On July 24, 2017 前言 查看全文 http://www.taodudu.cc/news/sho ...

  2. Linux基础命令-tar打包压缩文件

    Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客 Linux三剑客-grep命令_Linux学习中的博客-CSDN博客 Linux文件管理命令(3)-mv改动文件_Linux ...

  3. linux查找目录下含有xx的文件,linux基础命令介绍三:文件搜索及其它

    1.linux中包含大量的文件,对于文件查找,linux提供了find命令. find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [e ...

  4. Linux基础命令---文本格式转换expand、unexpand

    expand 将文件中的tab转换成空格,结果送到标准输出.如果没有指定文件,那么从标准输入读取. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.F ...

  5. Linux 基础命令——比较两个文件内容的不同

    语法]: diff [参数] 文件1 文件2 [说明]: 本命令比较两个文本文件,将不同的行列出来 -b 将一串空格或TAB 转换成一个空格或TAB -e 生成一个编辑角本,作为ex 或ed 的输入可 ...

  6. Linux基础命令---get获取ftp文件

    get 使用lftp登录ftp服务器之后,可以使用get指令从服务器获取文件.   1.语法 get [-E]  [-a]  [-c] [-O base]  rfile  [-o lfile]   2 ...

  7. Linux基础命令---mget获取ftp文件

    mget 使用lftp登录mftp服务器之后,可以使用mget指令从服务器获取文件.mget指令可以使用通配符,而get指令则不可以. 1.语法       mget [-E]  [-a]  [-c] ...

  8. Linux基础命令(四)文件查找和压缩、软件安装、源码包管理

    目录 一.查找和压缩 1.文件查找 2.文件打包和压缩 二.软件安装 1.RPM包管理 三.源码包管理 一.查找和压缩 1.文件查找 (1)witch:命令查找 witch ls(命令) #查找ls命 ...

  9. linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)

    那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...

最新文章

  1. SpringMVC 多视图配置
  2. NodeJS API简介
  3. java泛型-类型擦除
  4. 【计算理论】可判定性 ( 对角线方法 | 证明自然数集 N 与实数集 R 不存在一一对应关系 )
  5. python数据库增删改查_python实现数据库增删改查
  6. 14/100. Merge Two Sorted Lists
  7. php mysql insert 变量,php – 在blueimp / jquery-file-upload上添加更多自定义变量给mysql insert...
  8. ECCV 2020 | 比GAN更强,ETH提出新型超分辨率模型SRFlow
  9. rsync实时同步服务部署
  10. 代码批量加引号_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步
  11. django3 websockets
  12. php四段拼接ip,合并相同的ip段算法
  13. JAVA中对集合排序
  14. 你画我猜游戏html源代码,微信小程序你画我猜demo完整源码
  15. vue -【nextTick】-【过度与动画】-【插槽】-【配置代理服务器】-【vuex】-【路由】
  16. win7系统怎么用笔记本做wifi热点(转)
  17. 机器是如何学习的?(监督式学习)
  18. 关于vscode 中Live Server插件无法弹出Chrome浏览器问题
  19. python计算定积分
  20. 昌德科技冲刺上市:计划募资约12亿元,蒋卫和为实控人

热门文章

  1. Python:中文分词库jieba安装使用
  2. 深圳国家高新技术企业认定优惠政策及申报要求汇总,奖励30万
  3. 向來情深,奈何緣淺,卻不悔相思。
  4. 【开源分享】女装大佬集合仓库
  5. C# 双保险进程监视器 lol 保证被监视的程序几乎永远运行. 关键字:进程操作 进程查看 创建进程
  6. win10+php+com组件,分享Win10系统打不开COM组件提示错误代码80040154的解决方法
  7. unity打包和去除logo动画
  8. Unity寻路报错“SetDestination“ can only be called on an active agent that has been placed on a NavMesh.
  9. java iterator set,Java HashSet iterator()方法与示例
  10. Java常量的定义和分类