- Home
- »
- Scripting & Automasi
- »
- Bash Basic
- »
- Bash #45 Redirecting and Duplicating File Descriptors
Share:
Table of Contents

🖥️ Pengantar
Bash menyediakan berbagai teknik untuk mengalihkan (redirecting) dan menduplikasi output dari perintah atau skrip. Dengan memahami konsep ini, kita dapat lebih mudah mengelola output standar (stdout), error standar (stderr), dan input standar (stdin).
Artikel ini akan membahas:
Apa Itu Redirection dalam Bash? – Pengertian dan jenis redirection.
Menggunakan > dan >> untuk Mengarahkan Output – Redirect ke file.
Menggunakan 2> untuk Mengarahkan Error – Redirect error ke file.
Menduplikasi Output dengan &> dan 2>&1 – Gabungan output dan error.
Praktik Terbaik dalam Menggunakan Redirection – Teknik optimasi.
Mari kita mulai! 🚀
📌 1. Apa Itu Redirection dalam Bash?
Redirection dalam Bash memungkinkan kita untuk mengalihkan stdin (input), stdout (output), dan stderr (error) ke berbagai tujuan seperti file, perangkat lain, atau proses lainnya.
🔹 Jenis Redirection:
> → Mengarahkan output ke file (overwrite).
>> → Mengarahkan output ke file (append).
2> → Mengarahkan error ke file.
&> → Mengarahkan stdout dan stderr ke file yang sama.
2>&1 → Menduplikasi error ke stdout.
📌 2. Menggunakan > dan >> untuk Mengarahkan Output
🔹 Mengarahkan Output ke File dengan Overwrite:
echo “Ini adalah output” > output.txt |
📌 Catatan:
Jika output.txt sudah ada, isinya akan diganti.
🔹 Mengarahkan Output ke File dengan Append:
echo “Tambahan output” >> output.txt |
📌 Catatan:
>> menambahkan teks ke file tanpa menghapus isinya.
📌 3. Menggunakan 2> untuk Mengarahkan Error
🔹 Menyimpan Pesan Error ke File:
ls /folder_tidak_ada 2> error.log |
📌 Catatan:
2> mengalihkan stderr ke file error.log.
🔹 Menggabungkan Output dan Error ke File Berbeda:
ls /folder_tidak_ada > output.log 2> error.log |
📌 Catatan:
Output akan masuk ke output.log, sementara error ke error.log.
📌 4. Menduplikasi Output dengan &> dan 2>&1
🔹 Menggabungkan stdout dan stderr ke Satu File:
ls /folder_tidak_ada &> output.log |
📌 Catatan:
&> mengalihkan stdout dan stderr ke file yang sama.
🔹 Mengalihkan stderr ke stdout dan ke File yang Sama:
ls /folder_tidak_ada > output.log 2>&1 |
📌 Catatan:
2>&1 mengarahkan stderr ke stdout sebelum stdout diarahkan ke file.
🔹 Menggunakan File Descriptor Tambahan untuk Output Tertentu:
exec 3> debug.log
echo “Debugging info” >&3
exec 3>&-
📌 Catatan:
File descriptor 3 digunakan untuk log khusus.
exec 3>&- menutup file descriptor setelah digunakan.
📌 5. Praktik Terbaik dalam Menggunakan Redirection
✅ Gunakan Redirection untuk Logging dan Debugging:
my_script.sh > log.txt 2>&1 |
✅ Pisahkan Output dan Error untuk Debugging yang Lebih Mudah:
my_script.sh > output.log 2> error.log |
✅ Gunakan File Descriptor Tambahan untuk Operasi Khusus:
exec 3> debug.log |
✅ Pastikan File Descriptor Ditutup Setelah Digunakan:
exec 3>&- |
📌 Kesimpulan
Menggunakan redirection dan menduplikasi output dalam Bash memudahkan pengelolaan output, error, dan logging dalam scripting. Dalam artikel ini, kita telah membahas:
✅ Cara menggunakan >, >>, 2>, &>, dan 2>&1 untuk redirection. ✅ Implementasi redirection untuk output dan error logging. ✅ Teknik menduplikasi output menggunakan file descriptor tambahan. ✅ Praktik terbaik untuk mengoptimalkan scripting dan debugging.
Artikel Selanjutnya: 🔄 Redirecting to Multiple Outputs – Menggunakan tee untuk mengarahkan output ke lebih dari satu tujuan dalam Bash.
📚 Daftar Pustaka
Shotts, W. E. (2019). The Linux Command Line: A Complete Introduction. No Starch Press.
GNU Bash Manual (2023). GNU Bash Reference Manual. Retrieved from https://www.gnu.org/software/bash/manual/