Perintah head Linux: tampilkan baris atau byte awal file
Perintah head menampilkan bagian awal file atau masukan standar; tanpa opsi jumlah, hasilnya adalah sepuluh baris pertama dari setiap input. Gunakan -n untuk jumlah baris dan -c untuk jumlah byte. Perintah ini berguna untuk memeriksa header dan sampel, tetapi tidak mengurutkan data atau memilih catatan terbaru.
Contoh berikut mengacu pada GNU head. Periksa head --version, head --help, dan man head pada sistem Anda karena perluasan seperti jumlah negatif atau sufiks ukuran dapat berbeda pada implementasi lain. Siapkan file latihan yang disebutkan dalam contoh; perintah pembacaan tidak menulis ulang file sumber.
Sintaks dasar
head [OPSI]... [FILE]...
OPSI dan FILE adalah penanda sintaks yang perlu diganti, bukan teks yang diketik apa adanya. Tanpa nama file, atau dengan argumen -, head membaca masukan standar: aliran data dari keyboard atau perintah sebelumnya. Kutip jalur yang mengandung spasi. Pada GNU head, head -- "-catatan saya.txt" memisahkan opsi dari nama file berawalan tanda hubung.
Penggunaan dasar head
Tampilkan sepuluh baris pertama
Siapkan access.log latihan dengan lebih dari sepuluh baris bernomor agar hasilnya mudah diperiksa. Perintah berikut menampilkan baris 1–10 lalu selesai. Jika input hanya memiliki enam baris, seluruh enam baris itu ditampilkan; head tidak menambah baris agar jumlahnya menjadi sepuluh.
head access.log
Tentukan jumlah baris
Gunakan -n 25 untuk paling banyak 25 baris awal. Dengan file latihan yang memiliki setidaknya 25 baris, hasil berhenti pada baris ke-25. Jumlah ini dihitung per input, sehingga dua file dapat menghasilkan sampai 25 baris masing-masing. Nilai nol tidak menampilkan isi; jumlah negatif pada GNU head mempunyai arti berbeda yang dijelaskan dalam tabel opsi.
head -n 25 access.log
Tentukan jumlah byte
Contoh berikut mengambil paling banyak 64 byte awal dari sample.bin. Byte adalah satuan data, bukan jumlah karakter yang tampak. Untuk file biner, arahkan hasil ke alat pemeriksa byte, misalnya head -c 64 sample.bin | od -An -tx1, agar data kontrol tidak ditampilkan sebagai urutan kontrol terminal. Tidak ada header otomatis untuk satu file kecuali diminta dengan -v.
head -c 64 sample.bin
Memeriksa hasil dari contoh lengkap
Contoh berikut membuat aliran tiga baris dengan printf, lalu memilih dua baris pertama. Tidak ada file yang perlu dibuat atau diubah.
printf 'one\ntwo\nthree\n' | head -n 2
Hasilnya adalah dua baris berikut, masing-masing diakhiri karakter baris baru:
one
two
Head memilih berdasarkan batas baris pada input, bukan berdasarkan lebar tampilan terminal. Satu baris panjang yang terbungkus menjadi beberapa baris layar tetap satu baris data. Bagian terakhir yang tidak diakhiri karakter baris baru juga dapat ditampilkan tanpa menambahkan terminator baru.
Opsi utama
| Opsi | Kegunaan |
|---|---|
-n NUM |
Tampilkan paling banyak NUM baris awal. |
-c NUM |
Tampilkan paling banyak NUM byte awal. |
-q |
Sembunyikan header nama file, termasuk saat membaca beberapa file. |
-v |
Selalu tampilkan header nama file, termasuk untuk satu file. |
-n -NUM |
Pada GNU head, tampilkan semua kecuali NUM baris terakhir. |
-c -NUM |
Pada GNU head, tampilkan semua kecuali NUM byte terakhir. |
Ganti NUM dengan angka yang dibutuhkan. Misalnya, head -n -2 file.txt pada input lima baris menampilkan tiga baris awal, bukan dua baris terakhir. Jika bagian yang dikecualikan sama besar atau lebih besar daripada input, tidak ada isi yang ditampilkan. Pada aliran yang terus bertambah, memilih semua kecuali bagian akhir memerlukan pembacaan lebih lanjut untuk menentukan bagian mana yang sudah boleh dikeluarkan; ini bukan cara untuk menghentikan produsen setelah sampel kecil.
Contoh praktis
Periksa header CSV dan sampel
Siapkan sales.csv yang memiliki header pada baris pertama dan satu catatan pada setiap baris sesudahnya. Enam baris awal berarti satu header dan paling banyak lima catatan. CSV adalah comma-separated values, format data dengan kolom yang biasanya dipisahkan koma. Jika nilai berkutip mengandung baris baru, satu catatan CSV dapat mencakup beberapa baris fisik; head tidak memahami struktur CSV dan hasilnya dapat berhenti di tengah catatan. Gunakan pembaca CSV bila harus memilih catatan secara utuh.
head -n 6 sales.csv
Bedakan sumber dari beberapa file
Dengan app.log dan worker.log latihan yang masing-masing memiliki setidaknya lima baris, perintah berikut menampilkan lima baris dari setiap file. Header berbentuk ==> app.log <== atau nama file lainnya menunjukkan sumber tiap bagian. GNU head biasanya sudah membuat header ketika ada beberapa input; -v menyatakan kebutuhan itu secara eksplisit. Gunakan -q bila ingin menyembunyikan header, tetapi hasil kemudian tidak lagi menandai sumbernya.
head -v -n 5 app.log worker.log
Batasi tampilan keluaran perintah
Contoh berikut mengambil 20 baris awal yang ditulis find saat menelusuri file biasa di /var/log. Direktori ini bergantung pada sistem dan sebagian isinya mungkin tidak dapat diakses. Pesan kesalahan izin tetap dapat muncul pada keluaran kesalahan, terpisah dari data yang masuk ke head. Urutan penelusuran find bukan jaminan urutan waktu atau nama; hasil ini tidak berarti 20 log terbaru.
find /var/log -type f | head -n 20
Nama file dapat mengandung karakter baris baru, sehingga 20 baris tampilan tidak selalu berarti 20 nama file utuh. Contoh ini cocok untuk pemeriksaan visual sederhana, bukan untuk meneruskan daftar jalur sembarang ke operasi otomatis. Alur pemrosesan nama file memerlukan pemisah yang aman, misalnya NUL, dan alat yang memahami pemisah tersebut.
Perbandingan dengan perintah lain
| Perintah | Fungsi utama | Penggunaan yang sesuai |
|---|---|---|
head |
Menampilkan bagian awal | Header dan sampel kecil |
tail (bahasa Inggris) |
Menampilkan atau mengikuti bagian akhir | Entri log terakhir dalam urutan file |
sed |
Memilih dan mengubah rentang baris | Pemrosesan baris yang lebih kompleks |
less |
Menelusuri input secara interaktif | Mencari dan membaca beberapa bagian file |
Untuk memilih alat berdasarkan pekerjaan, lihat referensi perintah Linux berdasarkan tugas (bahasa Inggris). Head sesuai ketika batas yang diperlukan adalah jumlah baris atau byte awal; ia tidak menggantikan parser format data atau pengurutan berdasarkan nilai.
Hal yang perlu diperhatikan
Byte berbeda dari karakter
Karakter UTF-8 dapat memakai beberapa byte. Memotong dua byte awal dari teks yang diawali huruf tiga byte dapat menghasilkan urutan UTF-8 yang belum lengkap. Karena itu, -c sesuai untuk batas byte, bukan untuk memotong teks berdasarkan jumlah karakter. File sumber tetap utuh, tetapi hasil potongannya belum tentu teks yang valid.
Urutan input tetap menentukan hasil
Head tidak mencari nilai terbesar, waktu terbaru, atau sampel acak. Bila hasil harus didasarkan pada nilai tertentu, urutkan atau pilih data memakai alat yang memahami kolom, format angka, dan waktu tersebut terlebih dahulu. Jangan menganggap baris awal sebuah log selalu yang terbaru.
Periksa status setiap bagian pipeline
Head dapat menutup pipa setelah memperoleh jumlah yang diminta. Jika produsen masih menulis, produsen dapat menerima SIGPIPE, sinyal bahwa pembaca pipa telah menutup aliran. Hal ini tidak pasti terjadi pada setiap pipa kecil karena seluruh keluaran mungkin sudah terkirim. Dalam Bash, status pipeline secara bawaan mengikuti perintah terakhir; dengan pipefail aktif, kegagalan di bagian sebelumnya juga memengaruhi status hasil.
Jangan menyimpulkan bahwa semua tahap berhasil hanya karena head menghasilkan sampel. Periksa pesan kesalahan sumber dan status tiap tahap. Bash menyediakan PIPESTATUS untuk pipeline terakhir; nilainya perlu ditangkap segera sebelum perintah lain menggantinya. Sebaliknya, status bukan nol akibat penghentian produsen yang memang diharapkan juga perlu dibedakan dari kegagalan membaca input. Aturan status dijelaskan dalam manual Bash dari pengelola Bash.
FAQ
Berapa baris yang ditampilkan head tanpa opsi jumlah?
Paling banyak sepuluh baris awal dari setiap input. Input yang lebih pendek ditampilkan sebanyak yang tersedia.
Bagaimana cara melihat baris pertama saja?
Gunakan head -n 1 FILE dan ganti FILE dengan jalur yang benar.
Perintah apa yang menampilkan baris terakhir?
Gunakan tail. Jumlah negatif pada GNU head justru mengecualikan bagian akhir, bukan memilihnya.
Bagaimana cara mengambil 1 KiB pertama?
Pada GNU head, head -c 1K FILE berarti paling banyak 1.024 byte. Sufiks 1KB berarti 1.000 byte. Periksa dukungan sufiks pada implementasi lain; angka byte langsung seperti 1024 menghindari perbedaan penulisan satuan.




