cat (Unix)

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

cat
Cat-example-command.gif
Perancang awalKen Thompson,
Dennis Ritchie
PengembangAT&T Bell Laboratories
Rilis perdana3 November 1971; 51 tahun lalu (1971-11-03)
Sistem operasiUnix, Unix-like, Plan 9, Inferno, ReactOS
PlatformCross-platform
JenisCommand
Lisensicoreutils: GPLv3+
ReactOS: GPLv2+

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[sunting | sunting sumber]

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.[1] Sedangkan untuk versi ReactOS ditulis oleh David Welch, Semyon Novikov, dan Hermès Bélusca.[2]

Penggunaan[sunting | sunting sumber]

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.[3]


Sintaks perintahnya adalah:

cat [opsi] [nama_file]

Opsi[sunting | sunting sumber]

Contoh beberapa flag cat : [4]

  • -b (GNU: --number-nonblank), tampilkan nomer jika baris tidak kosong.
  • -e menyiratkan -v, tampikan karakter$ di akhir setiap akhir baris. (Khusus GNU: flag -E sama dengan -e, tapi tanpa menyiratkan -v).
  • -n (GNU: --number), tampilknan nomer di awal setiap baris.
  • -s (GNU: --squeeze-blank), menghapus baris kosong bila ada lebih dari satu dan berdekatan.
  • -t menyiratkan -v, menyingkat tab menjadi ^I jika ada tab sebanyak dua kali. (GNU: flag -T sama dengan -t, tapi tanpa menyiratkan -v).
  • -u menggunakan unbuffered I/O untuk stdout. POSIX tidak menentukan perilaku tanpa flag ini.
  • -v (GNU: --show-nonprinting), 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[sunting | sunting sumber]

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[sunting | sunting sumber]

Memerintah Penjelasan
cat file1.txt Tampilkan isi file.
cat file1.txt file2.txt Gabungkan dua file dan tampilkan hasilnya di terminal.
cat file1.txt file2.txt > file_gabungan.txt Gabungkan dua file teks dan tulis ke dalam file teks baru.
cat > file_baru.txt Buat file bernama file_baru.txt. Ketikan huruf atau karakter yang diinginkan dan kemudian tekan CTRL+D untuk keluar dari mode menulis. Teks yang sudah ditulis kemudian akan di masukan ke dalam file file_baru.txt.
cat -n file1.txt file2.txt > nama_file.txt Beberapa pennggunaan cat dengan menggunakan opsi atau flag -n. Flag -n akan menampilkan nomor di setiap baris.
cat file1.txt > file2.txt Salin konten dari file file1.txt ke file file2.txt.
cat file1.txt >> file2.txt Tambahkan konten yang berasal file1.txt ke file2.txt.
cat file1.txt file2.txt file3.txt | sort > file4.txt Menggabungkan file, mengurutkan setiap baris, dan menulis output ke dalam file yang baru dibuat.
cat file1.txt file2.txt | less Jalankan command "less" dengan penggabungan file1 dan file2 sebagai inputnya.
cat file1.txt | grep contoh_text Tampilkan semua karakter yang berada di file1.txt dan kemudian filter atau saring supaya hanya menampilkan karakter atau kata "contoh" saja di dalam terminal.
command | cat Batalkan perintah "command", misalnya pagging, ketika menulis secara langsung ke TTY

Budaya Unix[sunting | sunting sumber]

Definisi file jargon[sunting | sunting sumber]

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

# To spew an entire file to the screen or some other output sink without pause (syn. blast).

  1. By extension, to dump large amounts of data at an unprepared target or with no intention of browsing it carefully. Usage: considered silly. Rare outside Unix sites. See also dd, BLT.

Among Unix fans, cat(1) is considered an excellent example of user-interface design, because it delivers the file contents without such verbosity as spacing or headers between the files, and because it does not require the files to consist of lines of text, but works with any sort of data.

Among Unix critics, cat(1) is considered the canonical example of bad user-interface design, because of its woefully unobvious name. It is far more often used to blast a single file to standard output than to concatenate two or more files. The name cat for the former operation is just as unintuitive as, say, LISP's cdr.[butuh rujukan]

Penggunaan cat yang tidak berguna[sunting | sunting sumber]

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.[5] Dalam komputasi, kata "penyalahgunaan",[6] 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 <a href="https://en.wikipedia.org/wiki/Redirection_(computing)" rel="mw:ExtLink" title="Redirection (computing)" class="cx-link" data-linkid="168">redirection</a> 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.[7] 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[sunting | sunting sumber]

  • Paste
  • split, perintah yang membagi file menjadi beberapa bagian yang kemudian dapat digabungkan kembali oleh cat.
  • lebih sedikit
  1. ^ [[[:Templat:Man/die.net]] cat(Templat:Man/die.net)] – Templat:Man/die.net
  2. ^ "reactos/cat.c at master · reactos/reactos · GitHub". github.com. 
  3. ^ GNU Coreutils. "GNU Coreutils manual", GNU, Retrieved on 1 Mars 2017.
  4. ^ OpenBSD manual page and the GNU Core Utiltites version of cat
  5. ^ comp.unix.shell. "Early award example of UUOC (1994)", comp.unix.shell via Google Groups, Retrieved on 1 Mars 2017.
  6. ^ "Merriam Webster's Definition of Abuse". Diakses tanggal 2021-02-25. 
  7. ^ Nguyen, Dan. "Stanford Computational Journalism Lab". stanford.edu. Diakses tanggal 2017-10-08. 

Pranala luar[sunting | sunting sumber]

Templat:Core Utilities commands