Stasiun Kerja Online OnWorks Linux dan Windows

logo

Hosting Online Gratis untuk WorkStation

<Sebelumnya | Konten | Selanjutnya>

Mengarahkan Output Standar

Pengalihan I/O memungkinkan kita mendefinisikan ulang kemana perginya keluaran standar. Untuk mengarahkan output standar ke file lain selain layar, kami menggunakan operator pengalihan “>” diikuti dengan nama file. Mengapa kita ingin melakukan ini? Seringkali berguna untuk menyimpan keluaran perintah dalam sebuah file. Misalnya, kita dapat memberitahu shell untuk mengirimkan output dari ls perintah ke file ls-output.txt alih-alih layar:


[saya@linuxbox ~]$ ls -l /usr/bin > ls-output.txt

[saya@linuxbox ~]$ ls -l /usr/bin > ls-output.txt


Di sini, kami membuat daftar panjang / usr / bin direktori dan mengirimkan hasilnya ke file

ls-output.txt. Mari kita periksa keluaran perintah yang diarahkan:


[saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 167878 2016-02-01 15:07 ls-output.txt

[saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 167878 2016-02-01 15:07 ls-output.txt


Bagus; file teks yang bagus dan besar. Jika kita melihat file dengan kurang, kita akan melihat file itu

ls-output.txt memang berisi hasil dari perintah ls kita:


[saya@linuxbox ~]$ lebih sedikit ls-output.txt

[saya@linuxbox ~]$ lebih sedikit ls-output.txt


Sekarang, mari kita ulangi tes pengalihan kita, tapi kali ini dengan variasi. Kami akan mengubah nama direktori menjadi yang tidak ada:



[saya@linuxbox ~]$ ls -l /bin/usr > ls-output.txt

ls: tidak dapat mengakses /bin/usr: Tidak ada file atau direktori seperti itu

[saya@linuxbox ~]$ ls -l /bin/usr > ls-output.txt

ls: tidak dapat mengakses /bin/usr: Tidak ada file atau direktori seperti itu


Kami menerima pesan kesalahan. Hal ini masuk akal karena kita menentukan direktori yang tidak ada /bin/usr, tetapi mengapa pesan kesalahan ditampilkan di layar daripada dialihkan ke file ls-output.txt? Jawabannya adalah bahwa ls program tidak mengirimkan pesan kesalahannya ke keluaran standar. Sebaliknya, seperti kebanyakan program Unix yang ditulis dengan baik, ia mengirimkan pesan kesalahannya ke kesalahan standar. Karena kami hanya mengarahkan keluaran standar dan bukan kesalahan standar, pesan kesalahan masih terkirim ke layar. Kita akan lihat caranya

Mengarahkan Output Standar


untuk mengalihkan kesalahan standar hanya dalam satu menit, tapi pertama-tama, mari kita lihat apa yang terjadi pada file keluaran kita:



[saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 0 2016-02-01 15:08 ls-output.txt

[saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 0 2016-02-01 15:08 ls-output.txt


File tersebut sekarang memiliki panjang nol! Hal ini karena, ketika kita mengarahkan keluaran dengan operator pengalihan “>”, file tujuan selalu ditulis ulang dari awal. Sejak kita ls perintah tidak menghasilkan hasil dan hanya pesan kesalahan, operasi pengalihan mulai menulis ulang file dan kemudian berhenti karena kesalahan, mengakibatkan pemotongannya. Faktanya, jika kita perlu memotong file (atau membuat file baru yang kosong), kita dapat menggunakan trik seperti ini:



[saya@linuxbox ~]$ > ls-output.txt

[saya@linuxbox ~]$ > ls-output.txt


Cukup menggunakan operator pengalihan tanpa perintah sebelumnya akan memotong file yang sudah ada atau membuat file baru yang kosong.

Jadi, bagaimana kita bisa menambahkan output yang dialihkan ke file alih-alih menimpa file dari awal? Untuk itu, kami menggunakan operator pengalihan “>>”, seperti:



[saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt

[saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt


Menggunakan operator “>>” akan menghasilkan output yang ditambahkan ke file. Jika file belum ada, maka file tersebut dibuat seolah-olah operator “>” telah digunakan. Mari kita uji:



[saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 503634 2016-02-01 15:45 ls-output.txt

[saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [saya@linuxbox ~]$ ls -l ls-keluaran.txt

-rw-rw-r-- 1 saya saya 503634 2016-02-01 15:45 ls-output.txt


Kami mengulangi perintah tersebut tiga kali sehingga menghasilkan file keluaran tiga kali lebih besar.


Komputasi Awan OS Teratas di OnWorks: