]>
Commit | Line | Data |
---|---|---|
44a7a5ab A |
1 | .\" $NetBSD: dd.1,v 1.7 1998/02/06 05:39:31 perry Exp $ |
2 | .\" | |
3 | .\" Copyright (c) 1990, 1993 | |
4 | .\" The Regents of the University of California. All rights reserved. | |
5 | .\" | |
6 | .\" This code is derived from software contributed to Berkeley by | |
7 | .\" Keith Muller of the University of California, San Diego. | |
8 | .\" | |
9 | .\" Redistribution and use in source and binary forms, with or without | |
10 | .\" modification, are permitted provided that the following conditions | |
11 | .\" are met: | |
12 | .\" 1. Redistributions of source code must retain the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer. | |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
15 | .\" notice, this list of conditions and the following disclaimer in the | |
16 | .\" documentation and/or other materials provided with the distribution. | |
17 | .\" 3. All advertising materials mentioning features or use of this software | |
18 | .\" must display the following acknowledgement: | |
19 | .\" This product includes software developed by the University of | |
20 | .\" California, Berkeley and its contributors. | |
21 | .\" 4. Neither the name of the University nor the names of its contributors | |
22 | .\" may be used to endorse or promote products derived from this software | |
23 | .\" without specific prior written permission. | |
24 | .\" | |
25 | .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
26 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
27 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
28 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
29 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
30 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
31 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
32 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
33 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
34 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
35 | .\" SUCH DAMAGE. | |
36 | .\" | |
37 | .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 | |
38 | .\" | |
39 | .Dd January 13, 1994 | |
40 | .Dt DD 1 | |
41 | .Os | |
42 | .Sh NAME | |
43 | .Nm dd | |
44 | .Nd convert and copy a file | |
45 | .Sh SYNOPSIS | |
46 | .Nm | |
47 | .Op operands ... | |
48 | .Sh DESCRIPTION | |
49 | The | |
50 | .Nm | |
51 | utility copies the standard input to the standard output. | |
52 | Input data is read and written in 512-byte blocks. | |
53 | If input reads are short, input from multiple reads are aggregated | |
54 | to form the output block. | |
55 | When finished, | |
56 | .Nm | |
57 | displays the number of complete and partial input and output blocks | |
58 | and truncated input records to the standard error output. | |
59 | .Pp | |
60 | The following operands are available: | |
61 | .Bl -tag -width of=file | |
62 | .It Cm bs= Ns Ar n | |
63 | Set both input and output block size, superseding the | |
64 | .Cm ibs | |
65 | and | |
66 | .Cm obs | |
67 | operands. | |
68 | If no conversion values other than | |
69 | .Cm noerror , | |
70 | .Cm notrunc | |
71 | or | |
72 | .Cm sync | |
73 | are specified, then each input block is copied to the output as a | |
74 | single block without any aggregation of short blocks. | |
75 | .It Cm cbs= Ns Ar n | |
76 | Set the conversion record size to | |
77 | .Va n | |
78 | bytes. | |
79 | The conversion record size is required by the record oriented conversion | |
80 | values. | |
81 | .It Cm count= Ns Ar n | |
82 | Copy only | |
83 | .Va n | |
84 | input blocks. | |
85 | .It Cm files= Ns Ar n | |
86 | Copy | |
87 | .Va n | |
88 | input files before terminating. | |
89 | This operand is only applicable when the input device is a tape. | |
90 | .It Cm ibs= Ns Ar n | |
91 | Set the input block size to | |
92 | .Va n | |
93 | bytes instead of the default 512. | |
94 | .It Cm if= Ns Ar file | |
95 | Read input from | |
96 | .Ar file | |
97 | instead of the standard input. | |
98 | .It Cm obs= Ns Ar n | |
99 | Set the output block size to | |
100 | .Va n | |
101 | bytes instead of the default 512. | |
102 | .It Cm of= Ns Ar file | |
103 | Write output to | |
104 | .Ar file | |
105 | instead of the standard output. | |
106 | Any regular output file is truncated unless the | |
107 | .Cm notrunc | |
108 | conversion value is specified. | |
109 | If an initial portion of the output file is skipped (see the | |
110 | .Cm seek | |
111 | operand) | |
112 | the output file is truncated at that point. | |
113 | .It Cm seek= Ns Ar n | |
114 | Seek | |
115 | .Va n | |
116 | blocks from the beginning of the output before copying. | |
117 | On non-tape devices, a | |
118 | .Xr lseek 2 | |
119 | operation is used. | |
120 | Otherwise, existing blocks are read and the data discarded. | |
121 | If the user does not have read permission for the tape, it is positioned | |
122 | using the tape | |
123 | .Xr ioctl 2 | |
124 | function calls. | |
125 | If the seek operation is past the end of file, space from the current | |
126 | end of file to the specified offset is filled with blocks of | |
127 | .Tn NUL | |
128 | bytes. | |
129 | .It Cm skip= Ns Ar n | |
130 | Skip | |
131 | .Va n | |
132 | blocks from the beginning of the input before copying. | |
133 | On input which supports seeks, a | |
134 | .Xr lseek 2 | |
135 | operation is used. | |
136 | Otherwise, input data is read and discarded. | |
137 | For pipes, the correct number of bytes is read. | |
138 | For all other devices, the correct number of blocks is read without | |
139 | distinguishing between a partial or complete block being read. | |
140 | .It Xo | |
141 | .Cm conv= | |
142 | .Ns Cm value Ns Op \&, Cm value \&... | |
143 | .Xc | |
144 | Where | |
145 | .Cm value | |
146 | is one of the symbols from the following list. | |
147 | .Bl -tag -width unblock | |
148 | .It Cm ascii , oldascii | |
149 | The same as the | |
150 | .Cm unblock | |
151 | value except that characters are translated from | |
152 | .Tn EBCDIC | |
153 | to | |
154 | .Tn ASCII | |
155 | before the | |
156 | records are converted. | |
157 | (These values imply | |
158 | .Cm unblock | |
159 | if the operand | |
160 | .Cm cbs | |
161 | is also specified.) | |
162 | There are two conversion maps for | |
163 | .Tn ASCII . | |
164 | The value | |
165 | .Cm ascii | |
166 | specifies the recommended one which is compatible with | |
167 | .At V . | |
168 | The value | |
169 | .Cm oldascii | |
170 | specifies the one used in historic | |
171 | .Tn AT&T | |
172 | and pre- | |
173 | .Bx 4.3 Reno | |
174 | systems. | |
175 | .It Cm block | |
176 | Treats the input as a sequence of newline or end-of-file terminated variable | |
177 | length records independent of input and output block boundaries. | |
178 | Any trailing newline character is discarded. | |
179 | Each input record is converted to a fixed length output record where the | |
180 | length is specified by the | |
181 | .Cm cbs | |
182 | operand. | |
183 | Input records shorter than the conversion record size are padded with spaces. | |
184 | Input records longer than the conversion record size are truncated. | |
185 | The number of truncated input records, if any, are reported to the standard | |
186 | error output at the completion of the copy. | |
187 | .It Cm ebcdic , ibm , oldebcdic , oldibm | |
188 | The same as the | |
189 | .Cm block | |
190 | value except that characters are translated from | |
191 | .Tn ASCII | |
192 | to | |
193 | .Tn EBCDIC | |
194 | after the | |
195 | records are converted. | |
196 | (These values imply | |
197 | .Cm block | |
198 | if the operand | |
199 | .Cm cbs | |
200 | is also specified.) | |
201 | There are four conversion maps for | |
202 | .Tn EBCDIC . | |
203 | The value | |
204 | .Cm ebcdic | |
205 | specifies the recommended one which is compatible with | |
206 | .At V . | |
207 | The value | |
208 | .Cm ibm | |
209 | is a slightly different mapping, which is compatible with the | |
210 | .At V | |
211 | .Cm ibm | |
212 | value. | |
213 | The values | |
214 | .Cm oldebcdic | |
215 | and | |
216 | .Cm oldibm | |
217 | are maps used in historic | |
218 | .Tn AT&T | |
219 | and pre | |
220 | .Bx 4.3 Reno | |
221 | systems. | |
222 | .It Cm lcase | |
223 | Transform uppercase characters into lowercase characters. | |
224 | .It Cm noerror | |
225 | Do not stop processing on an input error. | |
226 | When an input error occurs, a diagnostic message followed by the current | |
227 | input and output block counts will be written to the standard error output | |
228 | in the same format as the standard completion message. | |
229 | If the | |
230 | .Cm sync | |
231 | conversion is also specified, any missing input data will be replaced | |
232 | with | |
233 | .Tn NUL | |
234 | bytes (or with spaces if a block oriented conversion value was | |
235 | specified) and processed as a normal input buffer. | |
236 | If the | |
237 | .Cm sync | |
238 | conversion is not specified, the input block is omitted from the output. | |
239 | On input files which are not tapes or pipes, the file offset | |
240 | will be positioned past the block in which the error occurred using | |
241 | .Xr lseek 2 . | |
242 | .It Cm notrunc | |
243 | Do not truncate the output file. | |
244 | This will preserve any blocks in the output file not explicitly written | |
245 | by | |
246 | .Nm "" . | |
247 | The | |
248 | .Cm notrunc | |
249 | value is not supported for tapes. | |
250 | .It Cm osync | |
251 | Pad the final output block to the full output block size. | |
252 | If the input file is not a multiple of the output block size | |
253 | after conversion, this conversion forces the final output block | |
254 | to be the same size as preceding blocks for use on devices that require | |
255 | regularly sized blocks to be written. | |
256 | This option is incompatible with use of the | |
257 | .Cm bs= Ns Ar n | |
258 | block size specification. | |
259 | .It Cm swab | |
260 | Swap every pair of input bytes. | |
261 | If an input buffer has an odd number of bytes, the last byte will be | |
262 | ignored during swapping. | |
263 | .It Cm sync | |
264 | Pad every input block to the input buffer size. | |
265 | Spaces are used for pad bytes if a block oriented conversion value is | |
266 | specified, otherwise | |
267 | .Tn NUL | |
268 | bytes are used. | |
269 | .It Cm ucase | |
270 | Transform lowercase characters into uppercase characters. | |
271 | .It Cm unblock | |
272 | Treats the input as a sequence of fixed length records independent of input | |
273 | and output block boundaries. | |
274 | The length of the input records is specified by the | |
275 | .Cm cbs | |
276 | operand. | |
277 | Any trailing space characters are discarded and a newline character is | |
278 | appended. | |
279 | .El | |
280 | .El | |
281 | .Pp | |
282 | Where sizes are specified, a decimal number of bytes is expected. | |
283 | If the number ends with a ``b'', ``k'', ``m'' or ``w'', the number | |
284 | is multiplied by 512, 1024 (1K), 1048576 (1M) or the number of bytes | |
285 | in an integer, respectively. | |
286 | Two or more numbers may be separated by an ``x'' to indicate a product. | |
287 | .Pp | |
288 | When finished, | |
289 | .Nm | |
290 | displays the number of complete and partial input and output blocks, | |
291 | truncated input records and odd-length byte-swapping blocks to the | |
292 | standard error output. | |
293 | A partial input block is one where less than the input block size | |
294 | was read. | |
295 | A partial output block is one where less than the output block size | |
296 | was written. | |
297 | Partial output blocks to tape devices are considered fatal errors. | |
298 | Otherwise, the rest of the block will be written. | |
299 | Partial output blocks to character devices will produce a warning message. | |
300 | A truncated input block is one where a variable length record oriented | |
301 | conversion value was specified and the input line was too long to | |
302 | fit in the conversion record or was not newline terminated. | |
303 | .Pp | |
304 | Normally, data resulting from input or conversion or both are aggregated | |
305 | into output blocks of the specified size. | |
306 | After the end of input is reached, any remaining output is written as | |
307 | a block. | |
308 | This means that the final output block may be shorter than the output | |
309 | block size. | |
310 | .Pp | |
311 | If | |
312 | .Nm | |
313 | receives a | |
314 | .Dv SIGINFO | |
315 | (see the ``status'' argument for | |
316 | .Xr stty 1 ) | |
317 | signal, the current input and output block counts will | |
318 | be written to the standard error output | |
319 | in the same format as the standard completion message. | |
320 | If | |
321 | .Nm | |
322 | receives a | |
323 | .Dv SIGINT | |
324 | signal, the current input and output block counts will | |
325 | be written to the standard error output | |
326 | in the same format as the standard completion message and | |
327 | .Nm | |
328 | will exit. | |
329 | .Pp | |
330 | The | |
331 | .Nm | |
332 | utility exits 0 on success and >0 if an error occurred. | |
333 | .Sh SEE ALSO | |
334 | .Xr cp 1 , | |
335 | .Xr mt 1 , | |
336 | .Xr tr 1 | |
337 | .Sh STANDARDS | |
338 | The | |
339 | .Nm | |
340 | utility is expected to be a superset of the | |
341 | .St -p1003.2 | |
342 | standard. | |
343 | The | |
344 | .Cm files | |
345 | operand and the | |
346 | .Cm ascii , | |
347 | .Cm ebcdic , | |
348 | .Cm ibm , | |
349 | .Cm oldascii , | |
350 | .Cm oldebcdic | |
351 | and | |
352 | .Cm oldibm | |
353 | values are extensions to the | |
354 | .Tn POSIX | |
355 | standard. |