bsdtar.1 will be added and tar.1 deleted after repocopy is finished. Submitted by: kano at na rim or jp Coordinated by: Nobuyuki Koganemaru <n-kogane at syd odn ne jp>
404 lines
11 KiB
Groff
404 lines
11 KiB
Groff
.\" 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.
|
|
.\" 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
|
|
.\" %FreeBSD: src/bin/dd/dd.1,v 1.25.2.1 2005/02/08 14:23:40 brueffer Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd August 15, 2004
|
|
.Dt DD 1
|
|
.Os
|
|
.Sh 名称
|
|
.Nm dd
|
|
.Nd ファイルのコンバートおよびコピー
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Ar operands ...
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、標準入力を標準出力にコピーします。
|
|
入力データは
|
|
ブロック単位 (デフォルトでは 512 バイト) で読み書きされます。
|
|
入力データのブロック数が短かった場合は、何回か読み込みを行い、
|
|
ブロック数単位にまとめて出力します。
|
|
終了時に、
|
|
.Nm
|
|
は、入力と出力の各々について、ブロック単位で処理できたブロック数と
|
|
最終ブロックを満たさず半端になったブロック数を
|
|
標準エラー出力に表示します。
|
|
ブロック単位の変換で切り捨てられた
|
|
入力レコードがあった場合には、そのブロック数も表示します。
|
|
.Pp
|
|
以下のオペランドが利用可能です:
|
|
.Bl -tag -width ".Cm of Ns = Ns Ar file"
|
|
.It Cm bs Ns = Ns Ar n
|
|
入出力両方のブロックサイズを
|
|
.Ar n
|
|
バイトに設定します。
|
|
.Cm ibs , obs
|
|
の指定に優先します。
|
|
.Cm noerror ,
|
|
.Cm notrunc ,
|
|
.Cm sync
|
|
以外の変換指定がない場合は、入力ブロック数が小さい場合のまとめ処理なしで
|
|
入力ブロックを出力ブロックに 1 ブロック単位でコピーします。
|
|
.It Cm cbs Ns = Ns Ar n
|
|
変換レコードサイズを
|
|
.Ar n
|
|
バイトにします。
|
|
レコード指向の変換が指定された場合には変換レコードサイズが必要です。
|
|
.It Cm count Ns = Ns Ar n
|
|
入力のうち
|
|
.Ar n
|
|
個のブロックだけをコピーします。
|
|
.It Cm files Ns = Ns Ar n
|
|
.Ar n
|
|
個の入力ファイルをコピーします。
|
|
このオペランドは入力デバイスが
|
|
テープのときだけ有効です。
|
|
.It Cm fillchar Ns = Ns Ar c
|
|
変換モードにおいてブロックの空きを詰めるとき、もしくは
|
|
.Cm sync
|
|
モードで
|
|
.Cm noerror
|
|
を使用するとき、空白や
|
|
.Dv NUL
|
|
文字を使わずに、指定した
|
|
.Tn ASCII
|
|
文字を使用して詰めます。
|
|
.It Cm ibs Ns = Ns Ar n
|
|
入力ブロックのサイズを、デフォルトの 512 バイトに代えて
|
|
.Ar n
|
|
バイトにします。
|
|
.It Cm if Ns = Ns Ar file
|
|
標準入力のかわりに
|
|
.Ar file
|
|
から入力を行います。
|
|
.It Cm iseek Ns = Ns Ar n
|
|
入力ファイルの
|
|
.Ar n
|
|
ブロック目にシークします。
|
|
.Cm skip Ns = Ns Ar n
|
|
と同じです。
|
|
.It Cm obs Ns = Ns Ar n
|
|
出力ブロックのサイズをデフォルトの 512 バイトに代えて
|
|
.Ar n
|
|
バイトにします。
|
|
.It Cm of Ns = Ns Ar file
|
|
標準出力のかわりに
|
|
.Ar file
|
|
に対し出力を行います。
|
|
.Cm notrunc
|
|
が指定されないかぎり、普通の出力ファイルでは最後の 1 ブロックサイズに
|
|
満たないデータは切り詰められます。
|
|
出力ファイルの最初の部分がシークされて通り過ぎる場合は (
|
|
.Cm oseek
|
|
オペランド参照)
|
|
出力ファイルは そこまで切り詰められます。
|
|
.It Cm oseek Ns = Ns Ar n
|
|
出力ファイルの
|
|
.Ar n
|
|
ブロック目にシークします。
|
|
.Cm seek Ns = Ns Ar n
|
|
と同じです。
|
|
.It Cm seek Ns = Ns Ar n
|
|
コピーする前に、出力側ファイルの開始位置を先頭から
|
|
.Ar n
|
|
ブロックだけ進めます。
|
|
出力がテープデバイスでない場合は、
|
|
.Xr lseek 2
|
|
システムコールを使ってシークが実行されます。
|
|
テープデバイスの場合は、既存のブロックを読み捨てる事で指定位置まで
|
|
進める処理を実行します。
|
|
もしユーザがテープデバイスに対し読み込みのアクセス権
|
|
を持っていないときは、テープデバイスに対する
|
|
.Xr ioctl 2
|
|
システムコールを使います。
|
|
シーク処理がファイルの最後を超えて行われる場合は、
|
|
ファイルの末尾から指定のシーク位置に相当する部分まで
|
|
.Dv NUL
|
|
データのブロックを挿入します。
|
|
.It Cm skip Ns = Ns Ar n
|
|
コピーする前に、入力側ファイルの開始位置を先頭から
|
|
.Ar n
|
|
ブロックだけ進めます。
|
|
入力がシーク機能を持っているなら、
|
|
.Xr lseek 2
|
|
システムコールが使用されます。
|
|
シーク機能がなければ、既存のブロックを
|
|
読み捨てる事で指定位置まで進める処理を実行します。
|
|
入力がパイプから渡される
|
|
場合は、正確に指定されたバイト数が読まれます。
|
|
それ以外のデバイスでは、読まれたブロックのサイズが指定のブロックサイズに
|
|
満たない物や完全な物の区別をせずに、正確に指定されたブロック数が
|
|
読まれます。
|
|
.It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value ...
|
|
.Cm value
|
|
に以下のリストから 1 つのシンボルを指定して変換を行います。
|
|
.Bl -tag -width ".Cm unblock"
|
|
.It Cm ascii , oldascii
|
|
レコードの変換を行う前に
|
|
.Tn EBCDIC
|
|
から
|
|
.Tn ASCII
|
|
への文字コード変換を行います。
|
|
そのほかは
|
|
.Cm unblock
|
|
と同じです
|
|
(これらの指定では
|
|
.Cm cbs
|
|
も指定されている場合は暗黙の内に
|
|
.Cm unblock
|
|
も指定された事になります)。
|
|
.Tn ASCII
|
|
用に 2 つの変換マップがあります。
|
|
.Cm ascii
|
|
は
|
|
.At V
|
|
互換の お奨め変換マップです。
|
|
.Cm oldascii
|
|
は昔の
|
|
.At
|
|
および
|
|
.Bx 4.3 reno
|
|
以前のシステムで使われていた変換マップです。
|
|
.It Cm block
|
|
入出力のブロック境界に関係なく、入力を改行文字もしくは
|
|
end-of-file 文字で区切られる可変長レコード列として
|
|
扱います。
|
|
末尾の改行文字は捨てられます。
|
|
各入力レコードは
|
|
.Cm cbs
|
|
で指定する長さの固定長レコードに変換されます。
|
|
変換レコードサイズより短い入力レコードは空白文字が詰められます。
|
|
変換レコードサイズより長い入力レコードは長い部分が
|
|
切り捨てられます。
|
|
切り捨てがあった場合、切り捨てられた入力レコードの数は、
|
|
コピーの終了時に標準エラー出力に表示されます。
|
|
.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
|
|
は、昔の
|
|
.At
|
|
および
|
|
.Bx 4.3 reno
|
|
以前のシステムで使われていた変換マップです。
|
|
.It Cm lcase
|
|
英大文字を小文字に変換します。
|
|
.It Cm pareven , parnone , parodd , parset
|
|
指定したパリティを持つデータを出力します。
|
|
.Tn EBCDIC
|
|
から
|
|
.Tn ASCII
|
|
への変換指定を指定しない限り、
|
|
入力のパリティビットは削除されます。
|
|
.It Cm noerror
|
|
入力にエラーがあっても処理を止めないようにします。
|
|
入力エラーが起こったときは、診断メッセージに続けて、
|
|
その時の入力と出力のブロック数を、
|
|
正常動作終了時に表示するメッセージと同じ
|
|
フォーマットで標準エラー出力に表示します。
|
|
.Cm sync
|
|
変換も指定されていた場合は、入力データのうち失われたものを
|
|
.Dv NUL
|
|
バイト (ブロック指向の変換のときは空白文字) に置き換えて、
|
|
通常の入力バッファとして処理します。
|
|
.Cm fillchar
|
|
オプションを指定した場合、自動的に選択される詰め文字の代わりに、
|
|
コマンド行で指定した詰め文字を使用します。
|
|
.Cm sync
|
|
変換が指定されていなければ、その入力ブロックは出力から削除されます。
|
|
入力ファイルがテープかパイプ以外の場合、
|
|
.Xr lseek 2
|
|
を使い、
|
|
ファイルオフセットをエラーが発生したブロックの次に設定します。
|
|
.It Cm notrunc
|
|
出力ファイルを切り詰めません。
|
|
これにより、出力ファイルのブロックのうち、
|
|
.Nm
|
|
が明示的に書き込まないものが保存されます。
|
|
.Cm notrunc
|
|
はテープではサポートされません。
|
|
.It Cm osync
|
|
最後の出力ブロックを、出力ブロックサイズいっぱいになるように
|
|
パディングします。
|
|
もし変換後に入力ファイルが出力ブロックサイズの整数倍でなかった場合に、
|
|
最後の出力ブロックのサイズが直前のブロックと同じになるようにします。
|
|
これは、書き込む際に一定サイズのブロックが必要なデバイスに対して
|
|
使用するためです。
|
|
このオプションは
|
|
.Cm bs Ns = Ns Ar n
|
|
によるブロックサイズ指定とは両立しません。
|
|
.It Cm sparse
|
|
一つ以上の出力ブロックが
|
|
.Dv NUL
|
|
バイトのみからなる場合、
|
|
.Dv NUL
|
|
で埋める代りに、必要な空間だけ出力ファイルのシークを試みます。
|
|
結果として、疎なファイルとなります。
|
|
.It Cm swab
|
|
入力データを 2 バイトごとのペアとみなし、入れ替えます。
|
|
入力が奇数
|
|
バイトだった場合、最終バイトはそのままになります。
|
|
.It Cm sync
|
|
各入力ブロックを入力バッファサイズになるようにパディングします。
|
|
パディングには、ブロック指向の変換の場合は空白文字を、
|
|
そうでなければ
|
|
.Dv NUL
|
|
バイトを使います。
|
|
.It Cm ucase
|
|
英小文字を大文字に変換します。
|
|
.It Cm unblock
|
|
入出力のブロック境界に関係なく、入力を固定長レコード列として扱います。
|
|
入力レコードの長さは
|
|
.Cm cbs
|
|
オペランドで指定します。
|
|
データの後ろの空白文字を除去して、改行文字を追加します。
|
|
.El
|
|
.El
|
|
.Pp
|
|
サイズの指定の際には、バイト単位で 10 進数、8 進数、16 進数を
|
|
想定しています。
|
|
数字の最後に
|
|
.Dq Li b ,
|
|
.Dq Li k ,
|
|
.Dq Li m ,
|
|
.Dq Li g ,
|
|
.Dq Li w
|
|
をつけた場合、その数字に、
|
|
512, 1024 (1K), 1048576 (1M), 1073741824 (1G),
|
|
integer (整数) に収まるバイト数が、それぞれ乗ぜられます。
|
|
2 つ以上の数字を
|
|
.Dq Li x
|
|
でつないだものを積の意味で使用できます。
|
|
.Pp
|
|
終了時に、
|
|
.Nm
|
|
は、きちんともしくは部分的に入出力を行ったブロックの数、
|
|
切り詰められた入力レコードの数、奇数長のバイト入れ換えを行った
|
|
ブロックの数を標準エラー出力に表示します。
|
|
部分的入力ブロックとは、入力ブロックサイズより少なく読まれたものです。
|
|
部分出力ブロックとは、出力ブロックサイズより少なく書かれたものです。
|
|
テープデバイスで部分出力ブロックが出た場合は致命的なエラーとみなされます。
|
|
それ以外の場合は、そのブロックの残りが書かれます。
|
|
キャラクタデバイスで部分出力ブロックが出た場合は警告メッセージが出ます。
|
|
切り詰められた入力ブロックとは、可変長レコード指向の変換が
|
|
指定され入力行が変換レコードに合わせるには長すぎるか newline で
|
|
終っていない場合のものです。
|
|
.Pp
|
|
通常、入力または変換、もしくは両方の結果のデータは
|
|
指定されたサイズの出力ブロックに集められます。
|
|
入力データが最後に達した場合、残っている出力データはブロックとして
|
|
出力されます。
|
|
これは、最後の出力ブロックのサイズは
|
|
出力ブロックサイズより短くなる可能性がある事を意味します。
|
|
.Pp
|
|
.Nm
|
|
が
|
|
.Dv SIGINFO
|
|
(
|
|
.Xr stty 1
|
|
の引数
|
|
.Cm status
|
|
参照)
|
|
シグナルを受けた場合、通常の処理完了時と同じフォーマットで、
|
|
その時点の入出力ブロック数を標準エラー出力に出力します。
|
|
.Nm
|
|
が
|
|
.Dv SIGINT
|
|
シグナルを受けた場合、通常の処理完了時と同じフォーマットで、
|
|
その時点の入出力ブロック数を標準エラー出力に出力して
|
|
.Nm
|
|
は終了します。
|
|
.Sh 使用例
|
|
ディスクドライブにバッドブロックが含まれていないことをチェックする。
|
|
.Pp
|
|
.Dl "dd if=/dev/ad0 of=/dev/null bs=1m"
|
|
.Pp
|
|
現在のところリカバー可能なリードエラーのエラー度合が進んで
|
|
リカバー不可能になってしまわないように、
|
|
ディスクドライブをリフレッシュする。
|
|
.Pp
|
|
.Dl "dd if=/dev/ad0 of=/dev/ad0 bs=1m"
|
|
.Pp
|
|
ファイルからパリティビットを削除する。
|
|
.Pp
|
|
.Dl "dd if=file conv=parnone of=file.txt"
|
|
.Pp
|
|
ファイルの (偶数) パリティエラーをチェックする。
|
|
.Pp
|
|
.Dl "dd if=file conv=pareven | cmp -x - file"
|
|
.Sh 診断
|
|
.Ex -std
|
|
.Sh 関連項目
|
|
.Xr cp 1 ,
|
|
.Xr mt 1 ,
|
|
.Xr tr 1
|
|
.Sh 規格
|
|
.Nm
|
|
ユーティリティは
|
|
.St -p1003.2
|
|
規格のスーパセットです。
|
|
.Cm files
|
|
オペランドおよび、
|
|
.Cm ascii ,
|
|
.Cm ebcdic ,
|
|
.Cm ibm ,
|
|
.Cm oldascii ,
|
|
.Cm oldebcdic ,
|
|
.Cm oldibm
|
|
は
|
|
.Tn POSIX
|
|
規格を拡張しています。
|