6 个版本 (3 个破坏性更新)
使用旧的 Rust 2015
0.4.0 | 2018 年 11 月 15 日 |
---|---|
0.3.1 | 2018 年 11 月 11 日 |
0.2.0 | 2018 年 10 月 31 日 |
0.1.1 | 2018 年 10 月 30 日 |
#7 in #convert-file
9KB
dd: 转换并复制文件
概要
dd [操作数]... dd 选项
描述
根据操作数复制文件,并转换和格式化。
bs=BYTES
每次读取和写入最多 BYTES 字节(默认:512);覆盖 ibs 和 obs
cbs=BYTES
每次转换 BYTES 字节
conv=CONVS
按照逗号分隔的符号列表转换文件
count=N
只复制 N 个输入块
ibs=BYTES
每次读取最多 BYTES 字节(默认:512)
if=FILE
从 FILE 读取而不是 stdin
iflag=FLAGS
按照逗号分隔的符号列表读取
obs=BYTES
每次写入 BYTES 字节(默认:512)
of=FILE
写入 FILE 而不是 stdout
oflag=FLAGS
按照逗号分隔的符号列表写入
seek=N
在输出开始处跳过 N 个 obs 大小的块
skip=N
在输入开始处跳过 N 个 ibs 大小的块
status=LEVEL
将信息打印到 stderr 的 LEVEL;'none' 抑制所有信息,除了错误消息,'noxfer' 抑制最终的传输统计信息,'progress' 显示周期性传输统计信息
N 和 BYTES 可以后跟以下乘法后缀:c =1, w =2, b =512, kB =1000, K =1024, MB =1000_1000, M =1024_1024, xM =M, GB =1000_1000_1000, G =1024_1024_1024,以此类推 T, P, E, Z, Y。
CONV
每个 conv 符号可以是
ascii
从 EBCDIC 到 ASCII
ebcdic
从 ASCII 到 EBCDIC
ibm
从 ASCII 到备用 EBCDIC
block
用空格填充以 cbs-size 结尾的记录
unblock
将 cbs-size 记录中的尾随空格替换为换行符
lcase
将大写转换为小写
ucase
将小写转换为大写
sparse
对于 NUL 输入块,尝试寻求而不是写入输出
swab
交换每个输入字节的每一对
sync
用 NULs 填充每个输入块以 ibs-size;当与 block 或 unblock 一起使用时,用空格而不是 NULs 填充
excl
如果输出文件已存在,则失败
nocreat
不要创建输出文件
notrunc
不要截断输出文件
noerror
在读取错误后继续
fdatasync
在完成之前物理写入输出文件数据
fsync
同样,但还写入元数据
FLAG
每个 FLAG 符号可以是:-append 追加模式(仅适用于输出;建议 conv=notrunc)
direct
使用直接 I/O 数据
directory
除非是目录,否则失败
dsync
使用同步 I/O 数据
sync
同样,但还用于元数据
fullblock
累积完整的输入块(仅 iflag)
非阻塞
使用非阻塞I/O
noatime
不更新访问时间
nocache
请求丢弃缓存。另请参阅 oflag=sync
noctty
不要从文件分配控制终端
nofollow
不要跟随符号链接
count_bytes
将 'count=N' 视为字节计数(仅iflag有效)
skip_bytes
将 'skip=N' 视为字节计数(仅iflag有效)
seek_bytes
将 'seek=N' 视为字节计数(仅oflag有效)
信号
向正在运行的 'dd' 进程发送USR1信号会使它将I/O统计信息打印到标准错误,然后继续复制。
选项
--help 显示此帮助并退出 --version 输出版本信息并退出
作者
最初由Paul Rubin、David MacKenzie和Stuart Kemp编写。克隆版本仅通过查看Efron Licht的man页面编写仅 // 输入、输出和编码
依赖项
~2–10MB
~110K SLoC