Manpages

NAME

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=filefile 中 读 而 不 是 标 准 输 入 。
of=
file 写 到 file 里 去 而 不 是 标 准 输 出 。 除 非 指 定 conv=notrunc , 否 则 , dd 将 把 file 截 为 O字 节 ( 或 由 seek= 选 项 指 定 的 大 小 )
ibs=
bytes 一 次 读 bytes 字 节 。 默 认 是 512。
obs=
bytes 一 次 写 bytes 字 节 。 默 认 是 512。
bs=
bytes 一 次 读 和 写 bytes 字 节 。 这 将 覆 盖 ibsobs 设 定 的 值 ( 并 且 , 设 定 bs 不 等 于 同 时 将 ibsobs 设 为 同 一 个 值 , 至 少 在 只 使 用 sync, noerrornotrunc 转 换 时 是 这 样 的 。 因 为 bs规 定 , 每 个 输 入 块 都 应 作 为 单 独 的 数 据 块 拷 贝 到 输 出 , 而 不 把 较 短 的 块 组 合 到 一 起 ) 。
cbs=
bytesblock 转 换 和 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中 的 ’0) 用 空 格 替 换 。 如 有 必 要 , 行 尾 会 填 充 空 格 。

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( 空 字 符 ) 。

本 手 册 页 描 述 了 fileutils-4.0软 件 包 中 的 dd 命 令 。 其 他 版 本 的 dd会 与 此 稍 有 不 同 。 有 关 更 正 和 补 充 可 以 发 帖 到 中 国 linux 论 坛 -man手 册 版 。 报 告 程 序 中 的 错 误 , 请 给 fileutils-bugs2gnu.ai.wit.edu 发 邮 件 。

[中 文 版 维 护 人 ]

astonia <email>

[中 文 版 最 新 更 新 ]

2000/10/19

[中 国 Linux论 坛 man手 册 页 翻 译 计 划 ]

http://cmpp.linuxforum.net

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh

COMMENTS