aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man1/dd.1
blob: d10db00eb35e77f40aa97810cad3c5acc3d826a5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
.\" Copyright (c) 1990, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Keith Muller of the University of California, San Diego.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)dd.1	8.2 (Berkeley) 1/13/94
.\" jpman %Id: dd.1,v 1.3 1997/05/16 00:16:21 h-nokubi Stab %
.\"	%Id: dd.1,v 1.2.8.3 1998/02/15 11:04:28 jkh Exp %
.\"
.Dd January 13, 1994
.Dt DD 1
.Os
.Sh 名称
.Nm dd
.Nd ファイルのコンバートおよびコピー
.Sh 書式
.Nm dd
.Op operands ...
.Sh 解説
.Nm
ユーティリティは、標準入力を標準出力にコピーします。入力データは
ブロック単位 (デフォルトでは512バイト) で読み書きされます。
入力データのブロック数が短かった場合は、何回か読み込みを行い、
ブロック数単位にまとめて出力します。
終了時に、
.Nm dd
は、入力と出力の各々について、ブロック単位で処理できたブロック数と
最終ブロックを満たさず半端になったブロック数を
標準エラー出力に表示します。ブロック単位の変換で切り捨てられた
入力レコードがあった場合には、そのブロック数も表示します。
.Pp
以下のオペランドが利用可能です:
.Bl -tag -width of=file
.It Cm bs= Ns Ar n
入出力両方のブロックサイズを設定します。
.Cm ibs , obs
の指定に優先します。
.Cm noerror ,
.Cm notrunc ,
.Cm sync
以外の変換指定がない場合は、入力ブロック数が小さい場合のまとめ処理なしで
入力ブロックを出力ブロックに 1 ブロック単位でコピーします。
.It Cm cbs= Ns Ar n
変換レコードサイズを
.Va n
バイトにします。
レコード指向の変換が指定された場合には変換レコードサイズが必要です。
.It Cm count= Ns Ar n
入力のうち
.Va n
個のブロックだけをコピーします。
.It Cm files= Ns Ar n
.Va n
個の入力ファイルをコピーします。このオペランドは入力デバイスが
テープのときだけ有効です。
.It Cm ibs= Ns Ar n
入力ブロックのサイズを、デフォルトの 512 バイトに代えて
.Va n
バイトにします。
.It Cm if= Ns Ar file
標準入力のかわりに
.Ar file
から入力を行います。
.It Cm obs= Ns Ar n
出力ブロックのサイズをデフォルトの 512 バイトに代えて
.Va n
バイトにします。
.It Cm of= Ns Ar file
標準出力のかわりに
.Ar file
に対し出力を行います。
.Cm notrunc
が指定されないかぎり、普通の出力ファイルでは最後の 1 ブロックサイズに
満たないデータは切り詰められます。
出力ファイルの最初の部分がスキップされる場合は (
.Cm seek
オペランド参照)
出力ファイルは そこまで切り詰められます。
.It Cm seek= Ns Ar n
コピーする前に、出力側ファイルの開始位置を先頭から
.Va n
ブロックだけ進めます。出力がテープデバイスでない場合は、
.Xr lseek 2
システムコールを使ってシークが実行され
ます。テープデバイスの場合は、既存のブロックを読み捨てる事で指定位置まで
進める処理を実行します。もしユーザがテープデバイスに対し読み込みのアクセス権
を持っていないときは、テープデバイスに対する
.Xr ioctl 2
システムコールを使います。シーク処理がファイルの最後を超えて行われる場合は、
ファイルの末尾から指定のシーク位置に相当する部分まで
.Tn NUL
データのブロックを挿入します。
.It Cm skip= Ns Ar n
コピーする前に、入力側ファイルの開始位置を先頭から
.Va n
ブロックだけ進めます。入力がシーク機能を持っているなら、
.Xr lseek 2
システムコールが使用されます。シーク機能がなければ、既存のブロックを
読み捨てる事で指定位置まで進める処理を実行します。入力がパイプから渡される
場合は、正確に指定されたバイト数が読まれます。
それ以外のデバイスでは、読まれたブロックのサイズが指定のブロックサイズに
満たない物や完全な物の区別をせずに、正確に指定されたブロック数が
読まれます。
.It Xo
.Cm conv=
.Ns Cm value Ns Op \&, Cm value \&...
.Xc
.Cm value
に以下のリストから 1 つのシンボルを指定して変換を行います。
.Bl -tag -width unblock
.It Cm ascii , oldascii
レコードの変換を行う前に
.Tn EBCDIC
から
.Tn ASCII
への文字コード変換を行います。そのほかは
.Cm unblock
と同じです。
(これらの指定では
.Cm cbs
も指定されている場合は暗黙の内に
.Cm unblock
も指定された事になります。)
.Tn ASCII
用に 2 つの変換マップがあります。
.Cm ascii
は
System V
互換の お奨め変換マップです。
.Cm oldascii
は昔の
.Tn AT&T
および
pre-4.3BSD-reno
システムで使われていた変換マップです。
.It Cm block
入出力のブロック境界に関係なく、入力を newline (改行) もしくは
end-of-file (ファイル末) で区切られる可変長レコード列として
扱います。各入力レコードは
.Cm cbs
で指定する長さの固定長レコードに変換されます。
変換するレコード・サイズより短い入力レコードは space (空白) で
パディングされます。変換するレコード・サイズより長い入力レコードは
長い部分が切り捨てられます。切り捨てがあった入力レコード数は、
もしあれば、コピーの終了時に標準エラー出力に表示されます。
.It Cm ebcdic , ibm , oldebcdic , oldibm
レコードが変換された後で
.Tn ASCII
から
.Tn EBCDIC
への変換を行う以外は
.Cm block
と同じです。
(これらの指定では
.Cm cbs
も指定されている場合は暗黙の内に
.Cm block
も指定された事になります。)
.Tn EBCDIC
用に 4 つの変換マップがあります。
.Cm ebcdic
は
.At V
互換の お奨め変換マップです。
.Cm ibm
は微妙に違う変換マップで、
.At V
で変換に
.Cm ibm
を指定した場合に相当します。
.Cm oldebcdic
と
.Cm oldibm
は、昔の
.Tn AT&T
および
pre-4.3BSD-reno
システムで使われていた変換マップです。
.It Cm lcase
英大文字を小文字に変換します。
.It Cm noerror
入力にエラーがあっても処理を止めないようにします。入力エラーが
起こったときは、診断メッセージに続けて その時の入力と出力の
ブロック数を、正常動作終了時に表示するメッセージと同じ
フォーマットで標準エラー出力に表示します。
もし
.Cm sync
変換も指定されていた場合は、入力データのうち失われた物を
.Tn NUL
バイト (ブロック指向の変換のときは space) に置き換えて、
通常の入力バッファとして処理します。
.Cm sync
変換が指定されていなければ、その入力ブロックは出力から削除されます。
テープかパイプ以外の入力ファイルでは、ファイル・オフセットは
.Xr lseek 2
を使ってエラーの発生したブロック以降にも設定されます。
.It Cm notrunc
出力ファイルを切り詰めません。
これによって出力ファイルのブロックの内で明らかに
.Nm dd
によって書き込まれる部分以外は保存されます。
.Cm notrunc
はテープではサポートされません。
.It Cm osync
最後の出力ブロックを出力ブロックサイズを満たすようにパディングします。
もし変換後に入力ファイルが出力ブロックサイズの整数倍でなかった場合に、
書き込む際に一定サイズのブロックが必要なデバイスで使う時のため、
最後の出力ブロックが直前のブロックと同じなるようにします。
このオプションは
.Cm bs= Ns Ar n
によるブロックサイズ指定とは両立しません。
.It Cm sparse
一つ以上の出力ブロックが
.Tn NUL
バイトのみからなる場合、
.Tn NUL
で埋める代りに、必要な空間だけ出力ファイルのシークを試みます。
結果として、疎なファイルとなります。
.It Cm swab
入力データを 2 バイトごとのペアとみなし、入れ替えます。入力が奇数
バイトだった場合、最後のデータはそのままになります。
.It Cm sync
各入力ブロックを入力バッファ・サイズになるようにパディングします。
パディングには、ブロック指向の変換の場合は空白を、そうでなければ
.Tn NUL
バイトを使います。
.It Cm ucase
英小文字を大文字に変換します。
.It Cm unblock
入出力のブロック境界に関係なく、入力を固定長レコード列として扱います。
入力レコードの長さは
.Cm cbs
オペランドで指定します。
データの後ろにパディングされている space を除去して
newline をつけます。
.El
.El
.Pp
サイズの指定は 10 進のバイト数が期待されます。
数字の最後に ``b'', ``k'', ``m'', ``w'' をつけた場合は、
それぞれ数字に 512、1024 (1K)、1048576 (1M)、integer (整数) のバイト数が
乗ぜられます。
2つ以上の数字を ``x'' でつないだ物を積の意味で使用できます。
.Pp
終了時に、
.Nm dd
は、きちんともしくは部分的に入出力を行ったブロックの数、
切り詰められた入力レコードの数、奇数長のバイト入れ換えを行った
ブロックの数を標準エラー出力に表示します。
部分的入力ブロックとは、入力ブロックサイズより少なく読まれた
物のことです。
部分出力ブロックとは、出力ブロックサイズより少なく書かれた
物のことです。
テープデバイスで部分出力ブロックが出た場合は致命的なエラーとみなされます。
それ以外の場合は、そのブロックの残りが書かれます。
キャラクタ・デバイスで部分出力ブロックが出た場合は警告メッセージが出ます。
切り詰められた入力ブロックとは、可変長レコード指向の変換が
指定され入力行が変換レコードに合わせるには長すぎるか newline で
終っていない場合の物です。
.Pp
通常、入力または変換の もしくは両方の結果のデータは
指定されたサイズの出力ブロックに集められます。
入力データが最後に達した場合、残っている出力データはブロックとして
出力されます。これは、最後の出力ブロックのサイズは
出力ブロックサイズより短くなる可能性がある事を意味します。
.Pp
.Nm dd
が
.Dv SIGINFO
(
.Xr stty 1
の引数 ``status'' 参照)
シグナルを受けた場合、その時点の入出力ブロック数を標準エラー出力に
通常の処理完了時と同じフォーマットで出力します。
.Nm dd
が
.Dv SIGINT
シグナルを受けた場合、その時点の入出力ブロック数を標準エラー出力に
通常の処理完了時と同じフォーマットで出力して
.Nm dd
は終了します。
.Pp
.Nm dd
ユーティリティは成功した場合は 0 を、
エラーが起きた場合は 0 より大きな値を返します。
.Sh 関連項目
.Xr cp 1 ,
.Xr mt 1 ,
.Xr tr 1
.Sh 規格
.Nm dd
ユーティリティは
.St -p1003.2
規格のスーパーセットです。
.Cm files
オペランドおよび、
.Cm ascii ,
.Cm ebcdic ,
.Cm ibm ,
.Cm oldascii ,
.Cm oldebcdic ,
.Cm oldibm
は
.Tn POSIX
規格を拡張しています。