Perintah cat Linux: tampilkan, gabungkan, dan periksa isi file
cat menampilkan isi file pada keluaran standar dan menggabungkan beberapa file sesuai urutan argumennya. Gunakan untuk teks pendek atau menyambung data; untuk menelusuri file panjang, less (bahasa Inggris) menyediakan tampilan per halaman dan pencarian. Pengalihan > dapat mengosongkan file tujuan, sehingga input dan output harus diperiksa sebelum dijalankan.
Untuk mencoba contoh, buat direktori baru dengan mkdir -- cat-lab && cd -- cat-lab dan hentikan jika gagal. Gunakan file latihan milik Anda dengan nama yang belum dipakai; jangan menimpa konfigurasi atau data penting. Contoh berikut memakai GNU Coreutils; periksa versi dan bantuan pada sistem tujuan.
Nama cat berasal dari concatenate, yaitu menyambung. Keluaran standar adalah aliran hasil perintah, biasanya menuju terminal, tetapi dapat dialihkan ke file atau perintah lain. Tanpa nama file, cat membaca masukan standar, biasanya keyboard atau pipa. Operand - juga berarti masukan standar. Tanpa opsi yang mengubah tampilan, byte input disambung tanpa pemisah tambahan.
Sintaks dasar
cat [OPSI]... [FILE]...
Periksa cat --help dan man cat untuk dukungan opsi. Kutip nama yang mengandung spasi dan gunakan -- sebelum nama berawalan tanda hubung, misalnya cat -- "-catatan saya.txt". Jika nama filenya tepat -, gunakan ./- agar dibaca sebagai file biasa, bukan masukan standar.
Penggunaan dasar cat
Menampilkan sebuah file
Contoh Linux berikut membaca identitas distribusi dari /etc/os-release jika tersedia. Isinya berbeda menurut distribusi; cat tidak mengubah isi konfigurasi itu. Untuk file biasa lain, ganti argumennya dengan jalur yang ingin dibaca. Jika jalur tidak ada atau akses baca ditolak, periksa pesan kesalahan dan status keluar.
cat /etc/os-release
Menggabungkan beberapa file
Siapkan part-01.txt dan part-02.txt sebagai dua file latihan. Isinya ditulis sesuai urutan argumen, bukan diurutkan berdasarkan nama. Bila file pertama berisi AB tanpa baris baru di akhir dan file kedua berisi CD, hasilnya ABCD, bukan dua baris. cat tidak menambahkan pemisah secara otomatis.
cat part-01.txt part-02.txt
Simpan output yang digabungkan
Siapkan kedua file bab terlebih dahulu dan pastikan book.txt adalah tujuan baru. Shell menangani > sebelum cat berjalan: file output yang ada biasanya dipotong menjadi kosong, lalu baru diisi hasil. Bila input tidak dapat dibaca, output dapat kosong atau hanya berisi sebagian gabungan. Periksa pesan kesalahan, status keluar, dan hasilnya; keberadaan book.txt saja bukan bukti gabungan lengkap. >> menambahkan ke akhir file, tetapi output tetap tidak boleh menjadi salah satu input.
cat chapter-1.txt chapter-2.txt > book.txt
Memeriksa keluaran standar
Contoh lengkap ini menulis dua baris data uji ke sample.txt baru, lalu membacanya hanya jika penulisan berhasil. Opsi tampilan tidak digunakan, sehingga teks hasil sama dengan isi file.
printf '%s\n' 'one' 'two' > sample.txt &&
cat -- sample.txt
Contoh output:
one
two
Setiap baris contoh berakhir dengan karakter baris baru. cat tidak berhenti pada setiap halaman; gunakan less untuk navigasi, atau perintah seperti head untuk mengambil bagian awal. Dalam pipa sederhana, grep pola file juga sering lebih langsung daripada menjalankan cat terlebih dahulu.
Opsi utama
| Opsi | Tujuan |
|---|---|
-n |
Memberi nomor setiap baris output. |
-b |
Memberi nomor pada baris yang tidak kosong dan menggantikan -n. |
-s |
Mengecilkan beberapa baris kosong menjadi satu. |
-E |
Menampilkan penanda $ pada setiap akhir baris. |
-T |
Menampilkan karakter tab sebagai ^I. |
-A |
Menampilkan tab, akhir baris, dan karakter tidak tercetak lainnya. |
Pada GNU, -A sama dengan -vET. -b mengalahkan -n tanpa bergantung pada urutan opsi. Baris berisi spasi atau tab tetap dianggap tidak kosong; -s hanya merapatkan baris kosong yang berurutan, bukan semua baris yang tampak kosong. Opsi ini mengubah hasil yang ditampilkan atau disimpan, bukan mengedit input.
Contoh praktis
Memeriksa file dengan nomor baris
Contoh berikut menyiapkan tiga baris konfigurasi latihan: satu baris isi, satu baris kosong, lalu satu baris isi. -n menampilkan nomor 1, 2, dan 3, termasuk nomor pada baris kosong. Nomor merupakan tambahan pada output; file asal tetap tidak berisi nomor itu.
printf '%s\n' 'port=8080' '' 'mode=prod' > app.conf &&
cat -n -- app.conf
Tampilkan karakter tersembunyi
Contoh baru berikut membuat teks dengan tab dan pasangan akhir baris carriage return/line feed (CRLF). Pada GNU cat di Linux, -A menampilkan tab sebagai ^I, carriage return sebagai ^M, dan akhir baris sebagai $: hasil contohnya echo^Ihello^M$. File hanya dibaca untuk inspeksi, tidak dijalankan sebagai skrip.
printf 'echo\thello\r\n' > script.sh &&
cat -A -- script.sh
Baca input standar ke dalam file
Pilih nama memo.txt yang belum dipakai. Pada terminal Linux dengan pengolahan baris normal (mode kanonik), ketik satu atau beberapa baris, tekan Enter setelah baris terakhir, lalu tekan Ctrl+D pada baris kosong untuk mengakhiri masukan atau EOF (end of file). Jika masih ada teks yang belum diakhiri Enter, Ctrl+D pertama dapat mengirim teks itu tanpa mengakhiri masukan; tekan lagi ketika buffer kosong. Perilaku ini mengikuti pengaturan terminal, bukan aturan semua antarmuka konsol.
cat > memo.txt
Setelah prompt shell kembali, periksa hasil dengan cat -- memo.txt. Untuk menambahkan teks pada kesempatan berikutnya, cat >> memo.txt memakai aturan akhir masukan yang sama. Penulisan tidak memiliki tombol urungkan dan Ctrl+C tidak mengembalikan isi lama yang sudah dipotong; gunakan editor bila perlu mengubah atau meninjau teks sebelum menyimpan. Manual terminal Linux menjelaskan kapan karakter EOF mengirim buffer atau mengakhiri bacaan.
Perbandingan dengan perintah lain
Referensi perintah Linux berdasarkan tugas (bahasa Inggris) membantu memilih perintah ketika yang diperlukan bukan penyambungan byte berurutan.
| Perintah | Peran utama | Cocok untuk |
|---|---|---|
cat |
Menampilkan atau menggabungkan aliran | File pendek dan pipeline |
less |
Paging interaktif dan pencarian | File panjang |
tac |
Membalik urutan rekaman | Membaca baris mulai dari akhir file |
paste |
Menggabungkan baris yang bersesuaian | Menggabungkan file sebagai kolom |
Hal yang perlu diperhatikan
Gunakan less untuk file besar
File besar dapat memenuhi riwayat gulir terminal tanpa fasilitas pencarian atau perpindahan halaman. less lebih sesuai untuk membaca panjang; cat tetap berguna untuk menyambung aliran data yang tidak ditampilkan langsung ke terminal.
Jangan mengarahkan file ke dirinya sendiri
Pada cat file > file, shell dapat mengosongkan file sebelum cat sempat membaca. Nama jalur yang berbeda pun dapat menunjuk data yang sama melalui tautan, jadi memeriksa ejaan nama saja tidak cukup. Aturan pengalihan output POSIX menjelaskan pembuatan dan pemotongan oleh shell. Gunakan file tujuan baru yang terpisah dari semua input; mengubah > menjadi >> bukan cara aman menyambung file ke dirinya sendiri.
Hindari mengirim data biner ke terminal
Byte kontrol dapat mengubah tampilan terminal. Gunakan file untuk mengidentifikasi jenis data atau od, hexdump, atau xxd untuk memeriksa byte dalam bentuk yang terbaca, sesuai alat yang tersedia. cat -A adalah alat bantu tampilan, bukan pemeriksa encoding atau cara memperbaiki file. Pada teks UTF-8, tampilan byte non-ASCII dapat sulit dibaca; pilih alat sesuai masalah yang diperiksa.
FAQ
Apakah cat mengubah file input?
Operasi biasa membaca isi input dan mengirim hasil ke keluaran standar. Opsi tampilan tidak menulis kembali isi input, tetapi shell dapat membuat atau memotong tujuan pengalihan; metadata waktu akses juga dapat mengikuti kebijakan sistem berkas.
Apakah cat menambahkan pemisah antar file?
Tidak. Tanpa opsi tampilan, byte file disambung langsung. Jika file pertama tidak berakhir dengan baris baru, awal file berikutnya berada pada baris yang sama.
Bagaimana saya menampilkan nomor baris?
Gunakan -n untuk semua baris atau -b untuk baris tidak kosong. Spasi dan tab tetap merupakan isi baris.
Haruskah saya menggunakan cat untuk log yang sangat panjang?
Bisa, tetapi less lebih praktis untuk navigasi dan pencarian. Menyambung file besar ke pipa atau file lain berbeda dari membacanya di terminal.




