Các /b
lá cờ của copy
xử lý lệnh các tập tin như nhị phân (ví dụ, một luồng nguyên byte vô nghĩa), và sao chép chúng byte cho byte thay vì mặc định (hoặc /a
) hành vi mà xử lý chúng như dòng văn bản (với end-of-line ký tự, cuối tập tin, v.v.)
Bạn có thể hợp nhất các tệp văn bản với hành vi văn bản mặc định hoặc chuyển đổi nhị phân, nhưng hầu như mọi tệp nhị phân sẽ không hoạt động. Bạn không thể đơn giản sao chép các byte từ hai tệp nhị phân và mong đợi chúng hoạt động vì các tệp nhị phân thường có các tiêu đề , siêu dữ liệu , cấu trúc dữ liệu, vv xác định định dạng của tập tin. Nếu bạn thực hiện một bản sao nhị phân, bạn sẽ chỉ sao chép tất cả các byte mà cuối cùng sẽ đặt các cấu trúc này ở những nơi không nên, vì vậy khi bạn mở chúng, chức năng phân tích cú pháp sẽ gặp sự cố và xem những gì về cơ bản là dữ liệu bị hỏng . Một số chương trình sẽ bỏ qua các phần không có ý nghĩa và chỉ hiển thị những gì họ có thể (cho phép lập thể hoạt động), nhưng một số sẽ ném lỗi và phàn nàn rằng tệp bị hỏng. Khả năng phát hiện tham nhũng phụ thuộc vào loại tệp.
Ví dụ: hãy phát minh ra một định dạng PDF đơn giản hóa:
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
Như bạn có thể thấy, mỗi tệp sẽ chứa một tiêu đề cấp tệp với một số thông tin chung, theo sau là các khối dữ liệu cho mỗi trang chứa dữ liệu trang. Sau đó, nếu bạn lấy hai tệp, mỗi tệp chứa một trang và hợp nhất chúng thành tệp nhị phân, bạn sẽ không tạo một tệp hai trang mà thay vào đó một tệp bị hỏng bắt đầu bằng một trang, sau đó có một bó rác (tệp tiêu đề không có ý nghĩa khi chương trình cố gắng đọc trang hai).
Điều tương tự cũng xảy ra với MP3 của bạn. Khi bạn kết hợp chúng như thế, các thẻ ID3 ở đầu và / hoặc cuối của tệp thứ hai được giữ lại và khi người chơi cố đọc khung tiếp theo, nó sẽ chờ dữ liệu âm thanh, nhưng đang tìm tiêu đề của tệp thứ hai không khớp với định dạng dự kiến cho dữ liệu âm thanh, vì vậy nó không biết phải làm gì. Một số người chơi sẽ phát tiêu đề dưới dạng dữ liệu âm thanh (có thể sẽ phát dưới dạng tĩnh / tạp âm / bật / v.v.), một số người sẽ cắt âm thanh cho đến khung chính xác tiếp theo, một số có thể ngừng phát bài hát hoàn toàn và một số thậm chí có thể bị sập .
Các copy
lệnh không biết gì về định dạng tập tin khác so với văn bản đơn giản (và thậm chí sau đó, chỉ ASCII text), vì vậy chỉ plain-text có thể được kết hợp một cách chính xác với nó. Các tệp nhị phân phải được kết hợp bằng trình chỉnh sửa biết cách phân tích và giải thích nội dung một cách chính xác.