Salah satu tugas paling umum saat menulis skrip Bash atau bekerja di baris perintah Linux adalah membaca dan menulis file.
Artikel ini menjelaskan cara menulis teks ke file di Bash, menggunakan operator pengalihan dan tee
perintah.
Menulis ke File menggunakan Operator Pengalihan #
Di Bash, pengalihan output memungkinkan Anda untuk menangkap output dari perintah dan menulisnya ke file.
Format umum untuk mengarahkan dan menulis output ke file adalah sebagai berikut:
keluaran > keluaran nama berkas >> nama berkas
- Itu
>
operator redirection menulis output ke file yang diberikan. Jika file ada, itu dipotong menjadi nol panjangnya. Jika tidak, file akan dibuat. Berhati-hatilah saat menggunakan operator ini karena Anda dapat menimpa file penting. - Itu
>>
operator redirection menambahkan output ke file yang diberikan. File dibuat jika tidak ada.
Anda harus memiliki izin menulis ke file. Jika tidak, Anda akan menerima kesalahan izin ditolak.
Berikut adalah contoh sederhana yang menunjukkan bagaimana mengarahkan ulang output dari gema
perintah ke file:
echo "ini adalah garis" > file.txt
Untuk mencegah menimpa file yang ada, aktifkan opsi "noclobber" dengan set
bawaan:
set -o noclobber
echo "ini adalah garis" > file.txt
bash: file.txt: tidak dapat menimpa file yang ada
Itu >>
operator memungkinkan Anda untuk mengganti opsi Bash "noclobber":
set -o noclobber
echo "ini adalah garis" >> mengajukan.txt
Itu >>
operator menambahkan output ke akhir file, daripada menimpa file:
echo "ini adalah garis" >> file.txt
Menggunakan printf
perintah untuk membuat output yang kompleks:
printf "Halo, saya %s.\n" $USER > berkas.txt
Jika Anda ingin menulis beberapa baris ke file, gunakan pengalihan dokumen Here (Heredoc).
Misalnya, Anda dapat meneruskan konten ke kucing
perintah dan tulis ke file:
kucing << EOF > mengajukan.txt Direktori kerja saat ini adalah: $PWD Anda login sebagai $(whoami) EOF
Untuk menambahkan garis, ubah >
dengan >>
sebelum nama file:
kucing << EOF >> berkas.txt Direktori kerja saat ini adalah: $PWD Anda login sebagai $(whoami) EOF
Anda dapat menulis output dari perintah apa pun ke file:
tanggal +"Tahun: %Y, Bulan: %m, Hari: %d" > file.txt
Keluaran dari tanggal
perintah akan ditulis ke file.
Menulis ke File menggunakan tee
Perintah #
Itu tee
perintah membaca dari input standar dan menulis ke output standar dan satu atau lebih file secara bersamaan.
echo "ini adalah garis" | file kaos.txt
Itu tee
perilaku default perintah adalah menimpa file yang ditentukan, sama seperti >
operator. Untuk menambahkan output ke file, jalankan perintah dengan with -Sebuah
(--menambahkan
) pilihan:
echo "ini adalah garis" | tee -sebuah file.txt
Jika Anda tidak ingin tee
untuk menulis ke output standar, Anda dapat mengarahkannya ke /dev/null
:
echo "ini adalah garis" | file kaos.txt >/dev/null
Untuk menulis teks ke lebih dari satu file, tentukan file sebagai argumen untuk tee
perintah:
echo "ini adalah garis" | file tee_1.file txt_2.file txt_3.txt
Keuntungan lain dari tee
perintahnya adalah Anda dapat menggunakannya bersama dengan sudo
dan menulis ke file yang dimiliki oleh pengguna lain. Untuk menambahkan teks ke file yang Anda tidak memiliki izin menulis, tambahkan pre sudo
sebelum tee
:
echo "ini adalah garis" | file sudo tee.txt
Itu gema
output perintah dilewatkan sebagai input ke tee
, yang meningkatkan izin sudo dan menulis teks ke file.
Kesimpulan #
Di Linux, untuk menulis teks ke file, gunakan use >
dan >>
operator pengalihan atau tee
perintah.
Jika Anda memiliki pertanyaan atau umpan balik, jangan ragu untuk meninggalkan komentar.