Trong các hệ điều hành Unix và giống Unix, **cat** là một tiện ích chuẩn dùng để nối và liệt kê các tập tin. cat là viết tắt của từ catenate - liên kết.

Lịch sử
-------

Bản cat đầu tiên trên Unix 1 được viết bởi Dennis M Ritchie (dmr) and Ken Thompson (ken)

Cú pháp lệnh
------------

Lệnh cat đi kèm với tùy chọn và một danh sách tập tin và xuất ra stdin theo thứ tự danh sách, nếu không có tập tin nào, cat đọc từ stdin. Cú pháp lệnh cat là:

```
cat [tùy chọn] [các tập tin cách nhau khoảng trắng]
```

Mặc định cat in kết quả ra màn hình stdout, có thể ghi kết quả ra tập tin như sau:

```
cat [tùy chọn] [các tập tin cách nhau khoảng trắng] > [tập tin]
```

Ta cũng có thể dùng ống pipe để truyền kết quả từ cat sang một lệnh khác, ví dụ:

```
cat [tùy chọn] [các tập tin cách nhau khoảng trắng] | less
```

### Tùy chọn

Trên các hệ điều hành khác nhau, tùy chọn cat có thể hơi khác, ở đây ví dụ vài tùy chọn của `cat` của BSD và GNU:

`b` (chỉ GNU: `--number-nonblank`), đánh số các dòng không trống

`n` (chỉ GNU: `--number`),đánh số tất cả các dòng
`s` (chỉ GNU: `--squeeze-blank`), gộp nhiều dòng trống kề nhau

`v` (chỉ GNU: `--show-nonprinting`), hiển thị các ký tự không in nếu có thể (trừ tab và ký tự kết thúc dòng) `t` BSD, `-T` trên GNU kèm `-v` hiển thị tab dạng `^I`

`e` BSD, `-E` trên GNU kèm `-v` hiển thị ký tự kết thúc dòng dạng `$`

`A` hiển thị tất cả các ký tự, kể cả tab và ký tự kết thúc dòng dạng `^Ithe` và `$`

### Với các kiểu tập tin khác

cat có thể dùng để nối các tập tin nhị phân, nhưng với một số tập có mã quy định ở đầu - cuối tập tin (header, footer sign) tập tin sinh ra sẽ bị lỗi. Một số tập tin âm thanh và phim ảnh có thể kết nối bằng cat, như MPEG hay DV

cat trong cộng đồng Unix
------------------------

Trong các hệ điều hành khác
---------------------------

Lệnh tương tự trong VMS, CP/M, DOS, OS/2, và Microsoft Windows là type.

Trong DOS/Windows, để gộp các tập tin ta có thể dùng cú pháp "copy /b"

```
copy /b file1.txt + file2.txt file3.txt
```

Lệnh này sao chép nội dung file1.txt và file2.txt từng bit một vào file3.txt

Tham khảo
---------

Đọc thêm
--------

* split (Unix): Một tiện ích Unix dùng để cắt file
* Zcat
* Paste (Unix)

Liên kết ngoài
--------------

* `cat`: concatenate and print files – Commands & Utilities Reference, The Single UNIX® Specification, Issue 6 from The Open Group
* UNIX Style, or cat -v Considered Harmful - A paper by Rob Pike on proper Unix command design using cat as an example.

### Các trang hướng dẫn

* cat(1) trang hướng dẫn  trong bản Unix đầu tiên.
* `cat(1)`: concatenate and write files – GNU Coreutils reference
* `[[[:Bản mẫu:Man/OpenBSD]] cat(Bản mẫu:Man/OpenBSD)]`: concatenate and print files – Bản mẫu:Man/OpenBSD
* `cat(1)` – FreeBSD General Commands Manual
* `cat(1)`: catenate files – Plan 9 from Bell Labs manual

### Khác

* Useless Use Of Cat Award

| * x
* t
* s
Các chương trình dòng lệnh và shell builtin trong Unix |
| --- |
| Hệ thống tập tin | 
* cat
* chmod
* chown
* chgrp
* cksum
* cmp
* cp
* dd
* du
* df
* file
* fuser
* ln
* ls
* mkdir
* mv
* pax
* pwd
* rm
* rmdir
* split
* tee
* touch
* type
* umask

 |
| Quản lý tác vụ | 
* at
* bg
* crontab
* fg
* kill
* nice
* ps
* time

 |
| Môi trường người dùng | 
* env
* exit
* logname
* mesg
* talk
* tput
* uname
* who
* write

 |
| Xử lý văn bản | 
* awk
* basename
* comm
* csplit
* cut
* diff
* dirname
* ed
* ex
* fold
* head
* iconv
* join
* m4
* more
* nl
* paste
* patch
* printf
* sed
* sort
* strings
* tail
* tr
* uniq
* vi
* wc
* xargs

 |
| Câu lệnh đi kèm các giao diện dòng lệnh | 
* alias
* cd
* echo
* test
* unset
* wait

 |
| Tìm kiếm | 
* find
* grep

 |
| Tài liệu | 
* man

 |
| Phần mềm phát triển | 
* ar
* ctags
* lex
* make
* nm
* strip
* yacc

 |
| Khác | 
* bc
* cal
* expr
* lp
* od
* sleep
* true and false

 |
| 
* Thể loại **Thể loại**
	+ Chương trình Unix tiêu chuẩn
	+ Unix SUS2008 utilities
* Danh sách **Danh sách**

 |