dd - 转换和拷贝文件
摘要
dd [--help] [--version] [if=file] [of=file] [ibs=bytes] [obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks] [seek=blocks] [count=blocks] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]
描述
当进行非强制的转换的时候,使用指定的输入和输出块大小拷贝文件(默认是从标准输入到标准输出。)
它每次从输入读取指定大小的一个块(默认是512字节)。如果使用 bs=bytes 选项,并且没有转换,除了指定 sync, noerror, 或 notrunc 之外, 那么dd将把全部读到的数据(可以比请求读的少)写到独立的输出块去。 这个输出块的长度和读到的数据完全一样,除非指定使用 sync(同步) 转换,那样的话,数据结尾处将追加NUL字符(或空格,见下)。
其他情况下,输入的时候每次读一个块,然后处理,并将输出结果收集起来,最后写到指定大小的数据块中去。最终的输出块可能会比指定的大小短一些。
数字值选项(以字节或块为单位)后面可以跟一个乘数: k=1024,b=512,w=2,c=1(w和c是GNU扩展语法。最好别使用w,因为在system V中,它表示2,在4.2 BSD中,它表示4)。两个或更多的数值表达式可以通过“x”乘起来。 GEU fileutils 4.0并且允许在数据块大小的叙述中使用下列乘法后缀(用bs=,cbs=,obs=):M=1048576,G=1073741824,同理可得T,P,E,Z,Y。D后缀表示数值是以十进制表示的:kD=1000 MD=1000000 GD=1000000000等等。(注意,在ls、df、du命令中,M等标记的大小是由环境变量确定的,而在DD中,它的值是固定的。)
选项
- if=file
- 从 file 中读而不是标准输入。
- of=file
- 写到 file 里去而不是标准输出。除非指定 conv=notrunc ,否则, dd 将把 file 截为O字节(或由 seek= 选项指定的大小)
- ibs=bytes
- 一次读 bytes 字节。默认是512。
- obs=bytes
- 一次写 bytes 字节。默认是512。
- bs=bytes
- 一次读和写 bytes 字节。这将覆盖 ibs 和 obs 设定的值(并且,设定 bs 不等于同时将 ibs 和 obs 设为同一个值,至少在只使用 sync, noerror 或 notrunc 转换时是这样的。因为bs规定,每个输入块都应作为单独的数据块拷贝到输出,而不把较短的块组合到一起)。
- cbs=bytes
- 为 block 转换和 unblock 转换指定转换块的大小。
- skip=blocks
- 在拷贝之前,跳过输入文件的前 blocks 块,每块大小为 ibs-byte 字节。
- seek=blocks
- 在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节。
- count=blocks
- 只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。
- conv=转换[,转换]...
- 将文件按 转换 参数指定的方式转换(在“,”两边没有空格)。
-
转换方式包括:
- ascii
- 将EBCDIC转换成ascii。
- ebcdic
- 将ascii转换成ebcdic。
- ibm
- 将ascii转换成alternative ebcdic。
- block
- 每一行输入,无论长短,输出都是 cbs 字节,并且其中的“换行”(NEWLINE,即c中的')用空格替换。如有必要,行尾会填充空格。
- unblock
- 用“换行”替换每个输入块( cbs 字节大小)末尾的空格。
- lcase
- 将大写字母转换成小写。
- ucase
- 将小写字母转换成大写。
- swab
- 交换每对输入字节。如果读入的字节数是奇数,最后一个字节只是简单的复制到输出(因为没有能跟它交换的字节了)(POSIX 1003.26,PASC翻译1003.2 3号和4号)。
- noerror
- 发生读错误时,继续进行。
- notrunc
- 不截断输出文件。
- sync
- 用0填充到每个输入块的末尾,使其大小为 ibs 字节。
-
GNU标准选项
- --help
- 将用法信息打印到标准输出,并成功退出。
- --version
- 将版本信息打印到标准输出,并成功退出。
- --
- 结束选项列表。
环境变量
LANG, LC_ALL, LC_CTYPE和LC_MESSAGES具有其通常含义。
遵循标准
POSIX 1003.2
举例
磁带机通常不能接受任意大小的数据块,当最后一个数据片段不能充满整个块时, dd 将出现I/O错误。用'dd if=myfile of=/dev/mytape conv=sync' 就可以使全部内容存到磁带上。当然,这样做,把文件从磁带上读回时回产生一个稍大些的文件,因为其尾部填充了一些NUL(空字符)。
dd - 转换和拷贝文件的更多相关文章
- 轻松解决U盘拷贝文件时提示文件过大问题
现在的高科技时代生活中,u盘的使用已经是许多从事电脑it行业的人每天都必须要用到的用具.可以在一台电脑上使用u盘拷贝文件到另外一台电脑上进行使用,加上它的身材小巧,非常方便我们随身携带到任何地方进行使 ...
- C++ 回调函数,拷贝文件
#include <iostream> #include <windows.h> using namespace std; unsigned long long transla ...
- Linux下,拷贝文件时,排除某些文件
一下是自己用到到几次实践,觉得很赞: 1.拷贝文件时,排除某些不需要的文件: 1)使用xargs来做: ls /tmp/test/ |grep -v .gz |xargs -i cp -r ...
- Linux下不同机器之间拷贝文件
在Linux系统下,不同机器上实现文件拷贝 一.将本地文件拷贝到远程机器: scp /home/administrator/news.txt root@192.168.6.129:/etc/squid ...
- 将DataTable转换成CSV文件
DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表.CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记 ...
- [QT学习]拷贝文件
sourceDir源绝对路径,toDir目标绝对路径 //拷贝文件: bool FileOperation::copyFileToPath(QString sourceDir ,QString toD ...
- Linux跨服务器拷贝文件详解
要实现跨服务器拷贝文件,只需执行以下命令就可以: scp /temp/FastDFS_v3..tar.gz root@ip:/temp 拷文件夹如下: scp -r /webapps/xxx root ...
- WINDOWS 远程桌面不能直接拷贝文件问题
使用WIN7远程客户端连WIN 2003服务器,发现不能拷贝文件,使用下面方法解决:
- Java Io 之拷贝文件性能比较
前面我们共讨论了拷贝文件有三种方式: 1. 第一种,一个字节一个字节的进行拷贝文件操作. 2. 第二种,使用字节数据批量的进行拷贝文件操作. 3. 第三种,使用带缓冲输入输出流来拷贝文件. 那么哪一种 ...
随机推荐
- YTU 2922: Shape系列-8
2922: Shape系列-8 时间限制: 1 Sec 内存限制: 128 MB 提交: 172 解决: 99 题目描述 小聪又想借用小强的Shape类了,但是不巧的是小强去考英语四级去了,但是小 ...
- 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法
四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...
- Spring 各种注解(@)的含义与认识
依赖注入,从字面上理解,即是:以注入的方式实现依赖: Spring 容器负责创建应用程序中的 bean,并通过 DI(依赖注入)来协调这些对象之间的关系.当描述 bean 如何进行装配(autowir ...
- mysql数据恢复失败记录
今天遇到了MySQL有几个数据表空间丢失的问题,作为一个外行尝试好久没恢复成功,考虑到只是几个基础数据表,就删除数据表停止服务,删除ibd文件后再创新创建表解决了问题. 近期的一些事让我不像以前一样钻 ...
- Win10 开启 Hyper-V 安装 CentOS 7 minimal
Win10 开启 Hyper-V 安装 CentOS 7 minimal 日常使用的 PC 环境一般都是 Windows 环境,如果需要偶尔使用 Linux 环境,一般情况下,大家的选择是安装虚拟机 ...
- MultipartResolver实现文件上传功能
转自:https://www.jb51.net/article/142736.htm springMVC默认的解析器里面是没有加入对文件上传的解析的,,使用springmvc对文件上传的解析器来处理文 ...
- PCB RabbitMQ的安装使用
随着公司加大力度信息化建设,PCB企业各种各样的系统软件越来越多,整个公司订单流状态监控变得越来越不可控,是时候需采用新的方式来收集各系统状态节点状态了,以下记录RabbitMQ安装使用: 一.Rab ...
- bzoj 4784: [Zjoi2017]仙人掌【tarjan+树形dp】
其实挺简单的但是没想出来---- 首先判断无解情况,即,一开始的图就不是仙人掌,使用tarjan判断如果一个点dfs下去有超过一个点比他早,则说明存在非简单环. 然后考虑dp,显然原图中已经属于某个简 ...
- React实战之将数据库返回的时间转换为几分钟前、几小时前、几天前的形式。
React实战之将数据库返回的时间转换为几分钟前.几小时前.几天前的形式. 不知道大家的时间格式是什么样子的,我先展示下我这里数据库返回的时间格式 ‘2019-05-05T15:52:19Z’ 是这个 ...
- nmcli 学习小结
nmcli 是Redhat提供的网络配置编辑工具, 它可直接编辑/etc/sysconfig/network-scripts/ifcfg-xxx , 它是NetworkManager服务的客户端工具, ...