GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mencetak keluaran perintah Linux ke file?

Gunakan > operator:

rsync -v > log.txt

akan menulis output dari perintah rsync ke file bernama log.txt .


Anda dapat memanggil skrip Anda dan mengarahkan ulang "output standar" (AKA STDOUT) ke file log. Gunakan '>>' untuk menambahkan file log atau '>' untuk menimpa file log. File akan dibuat (jika izin pada direktori memungkinkan) jika belum ada. Jika file sudah ada, pastikan file dapat ditulisi oleh Anda (atau siapa pun yang menjalankan skrip Anda).

Jika Anda selalu menambahkan file log daripada menulisnya, praktik yang baik adalah memastikan sejak awal bahwa sesuatu akan "memutar" file log Anda, yaitu, memindahkannya ke nama lain dan menghapus file log lama. Jika file log unik untuk skrip Anda, skrip Anda dapat menangani rotasi file log.

Biasanya, cara yang lebih disukai adalah memanggil skrip Anda dengan pengalihan STDOUT, tetapi mungkin ada kalanya Anda ingin melakukan pengalihan di dalam skrip itu sendiri untuk satu atau lebih perintah. Anda dapat menambahkan ">> logfile" setelah pernyataan apa pun dalam skrip shell untuk menambahkan STDOUT dari perintah tersebut ke file log. Anda dapat mengubahnya menjadi "2>&1>> logfile" untuk menambahkan "standard error" (AKA STDERR) dan STDOUT ke file log. Anda biasanya tidak ingin STDERR juga masuk ke file log karena STDERR biasanya digunakan untuk memberi tahu apa pun/siapa pun yang menjalankan skrip masalah. Tetapi ada waktu dan situasi di mana Anda menginginkannya. Jika mau, Anda dapat mengelompokkan perintah dalam skrip Anda di dalam { dan } dan mengalihkan STDOUT dari seluruh grup sekaligus dengan meletakkan pengalihan setelah kurung tutup itu.


Selain hal di atas, jika Anda penasaran ingin melihat keluaran yang dicetak ke layar DAN ke file untuk pengarsipan/grepping/dll, Anda mungkin ingin "tee " keluarannya. Ini adalah perintah yang bagus dan dinamai menurut pipa T yang ditemukan di pipa dunia nyata, dan bekerja dengan baik untuk "sub-konsol" seperti mysql, dll.

Perintahnya adalah tee ... inilah contoh yang disalin dari pengguna bernama "toydi":

Untuk menampilkan dan mencatat output dari perintah secara bersamaan:ls -l | tee -a file.log Dalam contoh ini, ini akan menampilkan output daftar direktori dan juga, menyimpan output ke dalam file.log. Opsi -menandakan perintah untuk menambahkan daripada menimpa file.

Juga, periksa gambar di wikipedia untuk visualisasi yang bagus tentang cara kerja tee. Saya akan menautkannya, tetapi saya tidak memiliki "poin reputasi" yang cukup untuk memposting lebih dari 1 tautan, dan saya merasa "toydi" pantas mendapatkan kredit tautan :)


Linux
  1. Cara Menetapkan Output dari Perintah Linux ke Variabel

  2. Cara Mengosongkan File Log di Linux

  3. Bagaimana cara mengarahkan output dari perintah waktu ke file di Linux?

  1. Cara Menyimpan Output Perintah ke File di Linux

  2. Bagaimana cara menambahkan output ke file?

  3. Bagaimana cara menangkap output dari perintah teratas dalam file di linux?

  1. Perintah File Linux:Cara Menentukan Jenis File di Linux

  2. Cara Menghapus (Menghapus) File atau Direktori di Linux

  3. Cara Menggunakan Perintah md5sum di Linux