Soal 1Simbol mana yang menambahkan baris baru di akhir sambil mempertahankan isi file yang sudah ada?
Redirection — > >> < 2>
Timpa file dengan >, tambahkan dengan >>, berikan standard input dengan <, dan kirim hanya output error ke file terpisah dengan 2> — praktik langsung di terminal browser.
Mengirim Output ke File — > dan >>
Hasil sebuah perintah biasanya langsung dicetak ke layar, tetapi redirection mengalihkan output tersebut ke sebuah file.
Tulis perintah > file dan apa yang seharusnya tampil di layar akan dituliskan ke dalam file.
> mengosongkan file sebelum menulis (timpa).
Jika kamu ingin mempertahankan isi yang sudah ada dan menambahkan di bagian akhir, gunakan >> (tambah).
Mengacaukan keduanya bisa menghapus data yang kamu butuhkan, jadi mari kita pahami perbedaannya dengan jelas.
> menghapus isi lalu menimpa; >> menambahkan di bagian akhir.| Simbol | Arti |
|---|---|
> | Tulis standard output ke file (kosongkan dulu, timpa) |
>> | Tambahkan standard output di akhir file |
< | Berikan isi file sebagai standard input |
1> | Tulis hanya standard output ke file (sama dengan >) |
2> | Tulis hanya standard error ke file terpisah |
echo 'line 1' > out.txt # timpa (buat baru)
echo 'line 2' >> out.txt # tambahkan
cat out.txt # line 1 dan line 2
echo 'reset' > out.txt # timpa (isi sebelumnya hilang)
cat out.txt # hanya reset
Routing Input dan Error — < dan 2>
< adalah kebalikan dari output: ia memberikan isi file sebagai standard input perintah.
Tulis perintah < file dan, alih-alih mengetik di keyboard, isi file dialirkan ke dalam perintah tersebut.
Berbeda dengan wc -l nums.txt, dengan < nums.txt nama file tidak ditambahkan ke output — hanya isinya yang diteruskan.
Output sebuah perintah terdiri dari dua jenis: hasil normal (standard output) dan pesan error (standard error).
Standard output diberi nomor 1 dan standard error diberi nomor 2; kamu mengarahkan standard output dengan 1> (sama dengan >) dan standard error dengan 2>.
Dengan 2> kamu bisa mengirim hanya error ke file terpisah, yang berguna saat kamu ingin mencatat hasil dan error secara terpisah.
< memberikan file sebagai input; 1> mengirim hanya standard output dan 2> hanya standard error ke file terpisah.printf 'x\ny\nz\n' > nums.txt # bahan 3 baris
wc -l < nums.txt # berikan nums.txt sebagai input → 3
cat missing.txt 2> err.txt # arahkan error ke err.txt
cat err.txt # cek pesan error
> mengosongkan file seketika
> mengosongkan isi file sebelum perintah dijalankan.
Jika kamu ingin menambahkan baris ke isi yang sudah ada, selalu gunakan >> (tambah).
Demikian pula, 2> menimpa file target dengan output error.
Kombinasikan Semuanya — Buat Log dan Hitung
Dalam pekerjaan nyata, kamu sering memulai catatan dengan >, terus menambahkan baris dengan >>, dan akhirnya mengecek jumlahnya dengan wc.
Mari kita gabungkan simbol-simbol yang sudah dipelajari untuk berlatih membuat dan menghitung log sederhana.
Menggabungkan Beberapa Redirection — > 2> 2>&1
Kamu bisa menentukan beberapa redirection pada satu perintah sekaligus.
Untuk memisahkan standard output dan error output ke file yang berbeda, tuliskan berurutan seperti > tujuan 2> tujuan-error.
Untuk menggabungkan keduanya ke satu file, gunakan 2>&1 untuk mengirim standard error (2) ke tujuan yang sama dengan standard output (1).
2>&1 ditulis setelah kamu menetapkan tujuan dengan >.
| Bentuk | Arti |
|---|---|
> out 2> err | Arahkan standard output ke out dan error ke err secara terpisah |
2>&1 | Kirim standard error (2) ke tujuan yang sama dengan standard output (1) |
> all 2>&1 | Tulis standard output dan error bersama-sama ke all |
touch real.txt # siapkan file nyata
ls real.txt missing.txt > out.txt 2> err.txt # output dan error terpisah
cat out.txt # real.txt (standard output)
cat err.txt # error untuk missing.txt
ls real.txt missing.txt > all.txt 2>&1 # keduanya ke satu file
cat all.txt # output dan error sekaligus
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa yang < lakukan untuk sebuah perintah?
Soal 3Apa yang terjadi saat kamu menjalankan cat missing.txt 2> err.txt?