Bagaimana cara menambahkan output ke file?

125

Bagaimana saya bisa melakukan sesuatu seperti command > fileitu menambahkan file, bukan menimpa?

Tom Brito
sumber
1
(Ada banyak dan banyak - mungkin terlalu banyak! - Barang dalam manual referensi bash termasuk semua jenis pengalihan. Sesuaikan sesuai kebutuhan untuk shell.)
4
Anda juga dapat menggunakan tee, jika Anda ingin mengarahkan ulang ke STDOUT dan menambahkan hasil ke file. Misalnya: gema "halo" | tee -a somefile.txt, di mana flag -a adalah singkatan dari append.
Henrik

Jawaban:

212

Gunakan >>untuk menambahkan:

command >> file
Mike Lewis
sumber
103

Ya.

command >> fileuntuk mengarahkan ulang stdout dari command.

command >> file 2>&1untuk mengarahkan stdout dan stderr ke file (berfungsi di bash, zsh)

Dan jika Anda perlu menggunakannya sudo, ingat itu adil

sudo command >> /file/requiring/sudo/privilegestidak bekerja, karena peningkatan hak istimewa berlaku untuk commandtetapi tidak shell bagian pengalihan. Namun, cukup gunakan teememecahkan masalah:

command | sudo tee -a /file/requiring/sudo/privileges

EdvardM
sumber
6
Saya menggunakan ini untuk semua program penangkapan keluaran .sh 2> & 1 | tee -a screen.log. "-a" adalah singkatan dari append.
Xdg
-3

Anda dapat menambahkan file dengan tanda >>. Ini memasukkan konten pada file terakhir yang kita gunakan.eg jika file biarkan namanya adalah myfile berisi xyz kemudian cat >> myfile abc ctrl d

setelah proses di atas, file myfile berisi xyzabc.

pengguna3680358
sumber
4
The >>Operator disebutkan tiga tahun sebelumnya sudah, dan OP tahu apa yang menambahkan berarti.
Dan Dascalescu