Linux基础命令-dd拷贝、转换文件
文章目录
文章目录
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拷贝、转换文件相关推荐
- Linux 基础命令(四)—— 文件的权限和访问控制列表(ACL)
Linux 基础命令(四)-- 文件的权限和访问控制列表(ACL) Published On July 24, 2017 前言 查看全文 http://www.taodudu.cc/news/sho ...
- Linux基础命令-tar打包压缩文件
Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客 Linux三剑客-grep命令_Linux学习中的博客-CSDN博客 Linux文件管理命令(3)-mv改动文件_Linux ...
- linux查找目录下含有xx的文件,linux基础命令介绍三:文件搜索及其它
1.linux中包含大量的文件,对于文件查找,linux提供了find命令. find是一个非常有效的工具,它可以遍历目标目录甚至整个文件系统来查找某些文件或目录: find [path...] [e ...
- Linux基础命令---文本格式转换expand、unexpand
expand 将文件中的tab转换成空格,结果送到标准输出.如果没有指定文件,那么从标准输入读取. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.F ...
- Linux 基础命令——比较两个文件内容的不同
语法]: diff [参数] 文件1 文件2 [说明]: 本命令比较两个文本文件,将不同的行列出来 -b 将一串空格或TAB 转换成一个空格或TAB -e 生成一个编辑角本,作为ex 或ed 的输入可 ...
- Linux基础命令---get获取ftp文件
get 使用lftp登录ftp服务器之后,可以使用get指令从服务器获取文件. 1.语法 get [-E] [-a] [-c] [-O base] rfile [-o lfile] 2 ...
- Linux基础命令---mget获取ftp文件
mget 使用lftp登录mftp服务器之后,可以使用mget指令从服务器获取文件.mget指令可以使用通配符,而get指令则不可以. 1.语法 mget [-E] [-a] [-c] ...
- Linux基础命令(四)文件查找和压缩、软件安装、源码包管理
目录 一.查找和压缩 1.文件查找 2.文件打包和压缩 二.软件安装 1.RPM包管理 三.源码包管理 一.查找和压缩 1.文件查找 (1)witch:命令查找 witch ls(命令) #查找ls命 ...
- linux c十六进制转十进制函数,用Linux/Unix命令把十六进制转换成十进制(转)
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...
最新文章
- SpringMVC 多视图配置
- NodeJS API简介
- java泛型-类型擦除
- 【计算理论】可判定性 ( 对角线方法 | 证明自然数集 N 与实数集 R 不存在一一对应关系 )
- python数据库增删改查_python实现数据库增删改查
- 14/100. Merge Two Sorted Lists
- php mysql insert 变量,php – 在blueimp / jquery-file-upload上添加更多自定义变量给mysql insert...
- ECCV 2020 | 比GAN更强,ETH提出新型超分辨率模型SRFlow
- rsync实时同步服务部署
- 代码批量加引号_如何用Word批量制作员工工作证?1分钟搞定1000份!只需三步
- django3 websockets
- php四段拼接ip,合并相同的ip段算法
- JAVA中对集合排序
- 你画我猜游戏html源代码,微信小程序你画我猜demo完整源码
- vue -【nextTick】-【过度与动画】-【插槽】-【配置代理服务器】-【vuex】-【路由】
- win7系统怎么用笔记本做wifi热点(转)
- 机器是如何学习的?(监督式学习)
- 关于vscode 中Live Server插件无法弹出Chrome浏览器问题
- python计算定积分
- 昌德科技冲刺上市:计划募资约12亿元,蒋卫和为实控人
热门文章
- Python:中文分词库jieba安装使用
- 深圳国家高新技术企业认定优惠政策及申报要求汇总,奖励30万
- 向來情深,奈何緣淺,卻不悔相思。
- 【开源分享】女装大佬集合仓库
- C# 双保险进程监视器 lol 保证被监视的程序几乎永远运行. 关键字:进程操作 进程查看 创建进程
- win10+php+com组件,分享Win10系统打不开COM组件提示错误代码80040154的解决方法
- unity打包和去除logo动画
- Unity寻路报错“SetDestination“ can only be called on an active agent that has been placed on a NavMesh.
- java iterator set,Java HashSet iterator()方法与示例
- Java常量的定义和分类