Cat (Unix)

cat adalah salah satu utilitas standar Unix yang digunakan untuk membaca file secara berurutan, dan mengeluarkannya sebagai output standar di dalam terminal (TTY). Nama ini berasal dari fungsinya, yaitu (con)catenate, yang dalam Bahasa Indonesia memiliki arti menggabungkan. cat telah diporting ke sejumlah sistem operasi lainnya.

Sejarah 
cat adalah bagian dari versi awal Unix. cat ditulis oleh Ken Thompson dan Dennis Ritchie. Versi cat yang dibundel di dalam GNU coreutils ditulis oleh Torbjorn Granlund dan Richard Stallman. Sedangkan untuk versi ReactOS ditulis oleh David Welch, Semyon Novikov, dan Hermès Bélusca.

Penggunaan 
Unix mendefinisikan perintah cat dengan cara membaca isi file dalam urutan yang susuai dengan argumen, dan kemudian mengeluarkan isinya dalam urutan yang sesuai dengan argumen yang telah diberikan. cat juga memiliki dukungan untuk flag, misalnya flag -u untuk output tanpa buffer. Itu berarti bahwa setiap byte ditulis setelah dibaca. Di dalam beberapa sistem operasi, seperti yang digunakan di dalam GNU Core Utilities, melakukan ini secara default dan mengabaikan flag.

Sintaks perintahnya adalah:
 cat [opsi] [nama_file]

Opsi 
Contoh beberapa flag cat : 

  (GNU: ), tampilkan nomer jika baris tidak kosong.
  menyiratkan , tampikan karakter di akhir setiap akhir baris.  (Khusus GNU: flag  sama dengan -e, tapi tanpa menyiratkan ).
  (GNU: ), tampilknan nomer di awal setiap baris.
  (GNU: ), menghapus baris kosong bila ada lebih dari satu dan berdekatan.
  menyiratkan , menyingkat tab menjadi  jika ada tab sebanyak dua kali. (GNU: flag  sama dengan -t, tapi tanpa menyiratkan ).
  menggunakan unbuffered I/O untuk stdout. POSIX tidak menentukan perilaku tanpa flag ini.
  (GNU: ), paksa tampilkan karakter atau font yang tidak ada dalam ASCII ke dalam karakter yang tersedia di dalam ASCII, namun tidak berlaku untuk tab dan karakter di akhir baris.

Penggunaan 
cat dapat digunakan untuk menghubungkan file ke dalam program yang menggunakan teks biasa atau data biner pada inputnya. cat tidak menghancurkan byte non-teks saat menggabungkan dan mengeluarkan. Dengan demikian, dua kasus penggunaan utamanya adalah file teks dan jenis file biner yang kompatibel dengan format tertentu.

Penggabungan teks terbatas pada file teks yang menggunakan pengkodean lama, seperti ASCII. cat tidak menyediakan cara untuk menggabungkan file teks Unicode yang memiliki Tanda Urutan Byte atau file yang menggunakan penyandian teks yang berbeda satu sama lain. Dengan kata lain, cat hanya bisa menggunakan pengkodean lama seperti ASCII. 

Jika ada banyak kumpulan data biner terstruktur, file gabungan yang dihasilkan mungkin tidak valid. Misalnya, jika sebuah file memiliki header atau footer yang unik, maka hasilnya akan menduplikasi ini secara palsu. Namun, untuk beberapa format file multimedia digital, file yang dihasilkan akan valid, sehingga cat menyediakan cara yang efektif untuk menambahkan karakter. Format video seperti, mkv/mp4/3gp/avi/dll, dapat menjadi contoh dari file yang dapat cat baca tanpa masalah.

Contoh

Budaya Unix

Definisi file jargon 
Pada File Jargon versi 4.4.7, dicantumkan beberapa hal sebagai definisi untuk cat :

Penggunaan cat yang tidak berguna 
Penggunaan cat yang tidak berguna atau useless use of cat (UUOC), adalah jargon umum di Unix untuk baris perintah yang hanya menyediakan fungsi kenyamanan bagi pengguna. Dalam komputasi, kata "penyalahgunaan", dalam definisi kedua, digunakan untuk menghina penggunaa (user) yang berlebihan atau tidak perlu dalam penggunaan konstruksi bahasa. Dengan demikian, penyalahgunaan cat kadang-kadang disebut "cat abuse". Contoh penyalahgunaan cat yang umum sebagi berikut:
 cat nama_file | command arg1 arg2 argn
Ini dapat ditulis ulang menggunakan redirection dan stdin. Sebagai gantinya, dalam salah satu bentuk berikut (yang pertama lebih tradisional):

  command arg1 arg2 argn < nama_file
  < nama_file command arg1 arg2 argn
Manfaat lainnya, input dari command memungkinkan untuk melakukan akses acak pada file, sedangkan contoh cat tidak. Ini karena input command membuka file sebagai deskriptor file stdin yang dapat diakses sepenuhnya oleh command, sedangkan perintah cat hanya menyediakan data sebagai aliran byte.

Kasus umum lainnya adalah saat di mana cat tidak diperlukan ketika command beroperasi dengan menggunakan perintah stdin, namun akan membaca dari file jika nama file diberikan sebagai argumen. Ini adalah kasus untuk banyak perintah umum; contoh berikut,

  cat "$file" | grep "$pattern"
  cat "$file" | less

 Sebagai gantinya dapat ditulis sebagai
grep "$pattern" "$file"

less "$file"

 
Penggunaan umum dari cat untuk file adalah guna menampilkan konten file ke output standar. Namun, jika output disalurkan atau dialihkan, cat tidak diperlukan.

Perintah cat ditulis dengan UUOC mungkin masih lebih disukai karena alasan keterbacaan, mungkin karena membaca aliran sambungan dari kiri ke kanan lebih mudah untuk dikonseptualisasikan. Juga, jika salah dalam menggunakan simbol, yang harusnya " > " malah menjadi " < " (karena berdekatan di keyboard), maka dapat menghapus konten file secara permanen. Dengan kata lain clobbering, salah satu cara untuk menghindarinya adalah dengan menggunakan perintah cat engan karakter [|] atau bisa disebut pipe. 

Bandingkan:
  command < in | command2 > out
  < in command | command2 > out
dengan:

cat in | command | command > out

Lihat juga 

 Paste
 split, perintah yang membagi file menjadi beberapa bagian yang kemudian dapat digabungkan kembali oleh cat.
 lebih sedikit

Pranala luar 

 
 UNIX Style, or cat -v Considered Harmful - A paper by Rob Pike on proper Unix command design using cat as an example.
 cat(1) original manual page in the First Edition of Unix.
 
 
 
 
 

Program standar Unix