#file #convert-file #operands #block #flags #converting #dd

dd-lib

Unix 核心工具 dd 的克隆库的库函数

4 个版本

使用旧 Rust 2015

0.2.1 2018 年 11 月 15 日
0.2.0 2018 年 11 月 15 日
0.1.1 2018 年 11 月 15 日
0.1.0 2018 年 11 月 13 日

#convert-file 中排名 #9

每月下载量 43
用于 dd

MIT 许可证

82KB
1.5K SLoC

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 的信息级别;'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

用空格填充以 newline 结尾的记录到 cbs-size

unblock

用 newline 替换 cbs-size 记录中的尾随空格

lcase

将大写转换为小写

ucase

将小写转换为大写

sparse

对于 NUL 输入块,尝试寻找而不是写入输出

swab

交换每个输入字节

sync

用 NUL 填充每个输入块到 ibs-size;当与 block 或 unblock 一起使用时,用空格而不是 NUL 填充

excl

如果输出文件已存在,则失败

nocreat

不创建输出文件

notrunc

不要截断输出文件

无错误

读取错误后继续

fdatasync

在完成前物理写入输出文件数据

fsync

同样,但也会写入元数据

FLAG

每个FLAG符号可以是:-append 追加模式(只对输出有意义;建议conv=notrunc)

direct

使用直接I/O进行数据操作

directory

除非是目录否则失败

dsync

使用同步I/O进行数据操作

sync

同样,但也会对元数据进行操作

fullblock

累积完整的输入块(仅iflag)

nonblock

使用非阻塞I/O

noatime

不更新访问时间

nocache

请求丢弃缓存。另见 oflag=sync

noctty

不要从文件分配控制终端

nofollow

不要跟随符号链接

count_bytes

将 'count=N' 作为字节数(仅iflag)处理

skip_bytes

将 'skip=N' 作为字节数(仅iflag)处理

seek_bytes

将 'seek=N' 作为字节数(仅oflag)处理

SIGNALS

向正在运行的 'dd' 进程发送 USR1 信号会使它打印 I/O 统计信息到标准错误,然后继续复制。

OPTIONS

--help 显示此帮助并退出 --version 输出版本信息并退出

AUTHOR

最初由 Paul Rubin、David MacKenzie 和 Stuart Kemp 编写。克隆版本仅通过查看 Efron Licht 的手册页面编写。输入、输出和编码

Dependencies

~2–12MB
~116K SLoC