Pengalihan I/O di Linux
Pengalihan dapat didefinisikan sebagai mengubah cara perintah membaca input dan mengirim output. Anda dapat mengalihkan input dan output dari sebuah perintah.
Untuk pengalihan, digunakan karakter meta. Pengalihan dapat dilakukan ke dalam file (karakter meta shell adalah tanda kurung sudut ‘<‘, ‘>’) atau program (karakter meta shell adalah simbol pipa ‘|’).
Aliran Standar dalam Pengalihan I/O
Shell bash memiliki tiga aliran standar dalam pengalihan I/O:
- Standar input (stdin): Aliran stdin diberi nomor sebagai stdin (0). Shell bash mengambil input dari stdin. Secara default, keyboard digunakan sebagai input.
- Standar output (stdout): Aliran stdout diberi nomor sebagai stdout (1). Shell bash mengirim output ke stdout. Output ditampilkan di layar.
- Standar error (stderr): Aliran stderr diberi nomor sebagai stderr (2). Shell bash mengirim pesan error ke stderr. Pesan error ditampilkan di layar.
Pengalihan ke dalam File
Setiap aliran menggunakan perintah pengalihan. Tanda kurung tunggal ‘>’ atau tanda kurung ganda ‘>>’ dapat digunakan untuk mengalihkan output standar. Jika file target tidak ada, file baru dengan nama yang sama akan dibuat.
Menimpa Konten File
Perintah dengan tanda kurung tunggal ‘>’ menimpa konten file yang ada.
>
: output standar<
: input standar2>
: error standar
Catatan: Menulis ‘1>’ atau ‘>’ dan ‘0<‘ atau ‘<‘ adalah hal yang sama. Tetapi untuk stderr Anda harus menulis ‘2>’.
Sintaks:
bashSalin kodecat > <namaFile>
Contoh:
bashSalin kodecat > sample.txt
Perhatikan snapshot di atas, perintah “cat > sample.txt” telah membuat ‘sample.txt’ dengan konten ‘a, b, c’. File yang sama ‘sample.txt’ dibuat lagi dengan perintah “cat > sample.txt” dan kali ini menimpa konten file sebelumnya dan hanya menampilkan ‘d, e, f’.
Menambahkan Konten ke File
Perintah dengan tanda kurung ganda ‘>>’ tidak menimpa konten file yang ada.
>>
: output standar<<
: input standar2>>
: error standar
Sintaks:
bashSalin kodecat >> <namaFile>
Contoh:
bashSalin kodecat >> sample.txt
Perhatikan snapshot di atas, di sini kita telah membuat dua file dengan nama yang sama menggunakan ‘>>’ dalam perintah “cat >> sample.txt”. Tetapi kali ini, konten tidak menimpa dan semuanya ditampilkan.
Pengalihan ke dalam Program
Pipe mengalihkan aliran dari satu program ke program lain. Ketika pipe digunakan untuk mengirim output standar dari satu program ke program lain, data dari program pertama tidak akan ditampilkan di terminal, hanya data dari program kedua yang akan ditampilkan.
Meskipun fungsi pipe mungkin terlihat mirip dengan ‘>’ dan ‘>>’, tetapi memiliki perbedaan yang signifikan. Pipe mengalihkan data dari satu program ke program lain sementara tanda kurung hanya digunakan dalam pengalihan file.
Contoh:
bashSalin kodels *.txt | cat > txtFile
Perhatikan snapshot di atas, perintah “ls *.txt | cat > txtFile” telah memasukkan semua file ‘.txt’ ke dalam file baru yang dibuat ‘txtFile’.
ref:[1]