GNU/Linux >> Belajar Linux >  >> Linux

Bash:Tulis ke File

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:

output > filename 
output >> filename 
  • > operator redirection menulis output ke file yang diberikan. Jika file ada, itu dipotong menjadi nol panjang. Jika tidak, file akan dibuat. Berhati-hatilah saat menggunakan operator ini karena Anda dapat menimpa file penting.
  • >> 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 echo perintah ke file:

echo "this is a line" > file.txt

Untuk mencegah menimpa file yang ada, aktifkan opsi “noclobber” dengan set bawaan:

set -o noclobberecho "this is a line" > file.txt
bash: file.txt: cannot overwrite existing file

>| operator memungkinkan Anda untuk mengganti opsi Bash “noclobber”:

set -o noclobberecho "this is a line" >| file.txt

>> operator menambahkan output ke akhir file, daripada menimpa file:

echo "this is a line" >> file.txt

Gunakan printf perintah untuk membuat keluaran yang kompleks:

printf "Hello, I'm %s.\n" $USER > file.txt

Jika Anda ingin menulis beberapa baris ke file, gunakan pengalihan Here document(Heredoc).

Misalnya, Anda dapat meneruskan konten ke cat perintah dan tulis ke file:

cat << EOF > file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF

Untuk menambahkan baris, ubah > dengan >> sebelum nama file:

cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF

Anda dapat menulis output dari perintah apa pun ke file:

date +"Year: %Y, Month: %m, Day: %d" > file.txt

Output dari date perintah akan ditulis ke file.

Menulis ke File menggunakan tee Perintah #

tee perintah membaca dari input standar dan menulis ke output standar dan satu atau lebih file secara bersamaan.

echo "this is a line" | tee file.txt

tee perilaku default perintah adalah menimpa file yang ditentukan, sama seperti > operator. Untuk menambahkan output ke file, jalankan perintah dengan -a (--append ) pilihan:

echo "this is a line" | tee -a file.txt

Jika Anda tidak ingin tee untuk menulis ke keluaran standar, Anda dapat mengarahkannya ke /dev/null :

echo "this is a line" | tee file.txt >/dev/null

Untuk menulis teks ke lebih dari satu file, tentukan file sebagai argumen ke tee perintah:

echo "this is a line" | tee file_1.txt file_2.txt file_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 sudo sebelum tee :

echo "this is a line" | sudo tee file.txt

echo keluaran perintah dilewatkan sebagai masukan ke tee , yang meningkatkan izin sudo dan menulis teks ke file.

Kesimpulan #

Di Linux, untuk menulis teks ke file, gunakan > dan >> operator pengalihan atau tee perintah.


Linux
  1. Cara menulis loop di Bash

  2. Bagaimana cara menulis integer ke file biner menggunakan Bash?

  3. Tulis ke file .txt?

  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Basa'?

  3. Melakukan Operasi Tulis Atom Dalam File Di Bash?

  1. Tulis Semua Tmux Scrollback Ke File?

  2. Redirect semua output ke file di Bash

  3. Redirect semua output ke file menggunakan Bash di Linux?