コマンドの/bフラグcopyは、ファイルをバイナリ(つまり、意味のないバイトの生のストリーム)/aとして扱い、デフォルトの(または)動作をテキストの行として扱う(行末で)代わりに、バイトごとにコピーします。文字、ファイルの終わりなど)
あなたは、デフォルトのテキストの動作やバイナリスイッチのいずれかでテキストファイルをマージすることができますが、ほとんどすべてのバイナリファイルは動作しません。バイナリファイルには通常ヘッダー、メタデータ、データ構造があるため、2つのバイナリファイルからバイトを単純にコピーしてそれらが機能すると期待することはできません。など、ファイルの形式を定義します。バイナリコピーを行う場合は、すべてのバイトをそのままコピーするだけで、これらの構造体を本来あるべきではない場所に配置することになるため、それらを開くと、解析関数に問題が発生し、本質的に破損しているデータがわかります。一部のプログラムは、意味をなさない部分を無視して、それらが何ができるか(ステレオグラフィが機能することを可能にする)を単に表示しますが、エラーをスローし、ファイルが破損していると文句を言うプログラムもあります。破損を検出する機能は、ファイルタイプによって異なります。
例として、簡略化されたPDF形式を発明してみましょう。
Byte(s) Meaning
---------------------
File header:
0-1 # of Pages
2-3 Language
4-5 Font
6-EOF Data (each page encoded separately)
Page data:
0-1 Page number
2-3 # of characters on page
4-#chars Letters contained on the page
ご覧のとおり、各ファイルには、いくつかの一般情報を含むファイルレベルのヘッダーが含まれ、その後にページデータを含む各ページのデータブロックが続きます。次に、それぞれが1ページを含む2つのファイルを取得し、それらをバイナリファイルとしてマージすると、2ページのファイルが1つ作成されるのではなく、1つのページで始まり、ジャンクの束(ファイルヘッダーは、プログラムが2ページ目を読み取ろうとしても意味がありません。
同じことがMP3でも起こります。それらをそのように組み合わせた場合、2番目のファイルのの最初および/または最後のID3タグは保持され、プレーヤーが次のフレームを読み取ろうとすると、オーディオデータを予期していますが、オーディオデータの予期される形式と一致しない2番目のファイルなので、何をすべきかわかりません。一部のプレーヤーはヘッダーをオーディオデータとして再生します(静的/ノイズ/ポップスなどとして再生される可能性があります)。一部のプレーヤーは、次の正しいフレームまでサウンドをカットし、一部は完全に曲の再生を停止し、一部はクラッシュする場合もあります。
copyコマンドは、プレーンテキスト(およびその後も、ASCIIテキストのみ)以外のファイル・タイプについて何も知らないので、唯一のプレーンテキストはそれで正しく組み合わせることができます。バイナリファイルは、内容を正しく解析および解釈する方法を知っているエディタを使用して組み合わせる必要があります。