Salah satu tugas yang paling biasa ketika menulis skrip Bash atau mengerjakan baris perintah Linux adalah membaca dan menulis fail.
Artikel ini menerangkan cara menulis teks ke fail di Bash, menggunakan operator pengalihan dan tee
perintah.
Menulis ke Fail menggunakan Redirection Operators #
Di Bash, pengalihan output membolehkan anda menangkap output dari perintah dan menulisnya ke fail.
Format umum untuk mengarahkan dan menulis output ke fail adalah seperti berikut:
output> nama fail >> nama fail
- The
>
pengendali pengalihan menulis output ke fail tertentu. Sekiranya fail itu ada, panjangnya dipotong hingga sifar. Jika tidak, fail dibuat. Berhati-hatilah semasa menggunakan pengendali ini kerana anda mungkin menimpa fail penting. - The
>>
operator pengalihan menambahkan output ke fail tertentu. Fail dibuat jika tidak ada.
Anda perlu mempunyai kebenaran menulis ke fail. Jika tidak, anda akan menerima ralat kebenaran yang ditolak.
Berikut adalah contoh mudah yang menunjukkan bagaimana mengalihkan output dari gema
arahan ke fail:
echo "ini adalah garis"> fail.txt
Untuk mengelakkan menimpa fail yang ada, aktifkan pilihan "noclobber" dengan set
terbina dalam:
set -o noclobber
echo "ini adalah garis"> fail.txt
bash: fail.txt: tidak dapat menimpa fail yang ada
The > |
pengendali membolehkan anda mengabaikan pilihan Bash "noclobber":
set -o noclobber
gema "ini garis"> | fail.txt
The >>
pengendali menambahkan output ke akhir fail, bukannya menimpa fail:
echo "ini adalah garis" >> fail.txt
Menggunakan printf
arahan untuk membuat output yang kompleks:
printf "Helo, saya% s.\ n "$ USER> fail.txt
Sekiranya anda ingin menulis beberapa baris ke fail, gunakan pengalihan dokumen Here (Heredoc).
Sebagai contoh, anda boleh menghantar kandungan ke kucing
perintah dan tuliskan ke fail:
kucing << EOF > fail.txt Direktori kerja semasa adalah: $ PWD Anda log masuk sebagai $ (whoami) EOF
Untuk menambahkan garis, ubah >
dengan >>
sebelum nama fail:
kucing << EOF >> fail.txt Direktori kerja semasa adalah: $ PWD Anda log masuk sebagai $ (whoami) EOF
Anda boleh menulis output sebarang arahan ke fail:
tarikh + "Tahun:% Y, Bulan:% m, Hari:% d"> fail.txt
Keluaran dari Tarikh
arahan akan ditulis ke fail.
Menulis ke Fail menggunakan tee
Perintah #
The tee
perintah membaca dari input standard dan menulis ke output standard dan satu atau lebih fail secara serentak.
gema "ini garis" | fail tee.txt
The tee
tingkah laku lalai perintah adalah menimpa fail yang ditentukan, sama seperti >
pengendali. Untuk menambahkan output ke fail, gunakan perintah dengan -a
(--tambahkan
pilihan:
gema "ini garis" | fail tee -a.txt
Sekiranya anda tidak mahu tee
untuk menulis ke output standard, anda boleh mengalihkannya ke / dev / null
:
gema "ini garis" | fail tee.txt> / dev / null
Untuk menulis teks ke lebih dari satu fail, tentukan fail sebagai argumen ke tee
arahan:
gema "ini adalah garis" | fail tee_1.txt fail_2.txt fail_3.txt
Kelebihan lain dari tee
perintah adalah bahawa anda boleh menggunakannya bersama dengan sudo
dan menulis ke fail yang dimiliki oleh pengguna lain. Untuk menambahkan teks ke fail yang tidak mempunyai izin menulis, tambahkan sudo
sebelum ini tee
:
gema "ini adalah garis" | fail sudo tee.txt
The gema
output perintah diteruskan sebagai input ke tee
, yang meningkatkan kebenaran sudo dan menulis teks ke fail.
Kesimpulan #
Di Linux, untuk menulis teks ke fail, gunakan >
dan >>
pengendali pengalihan atau tee
perintah.
Sekiranya anda mempunyai pertanyaan atau maklum balas, jangan ragu untuk memberikan komen.