(+84) 236.3827111 ex. 402

Linux Redirect Error Output To File


Linux Redirect Error Output To File

Bạn là một người dùng Ubuntu Linux và bash shell mới. Bạin cũng biết làm thế nào để chuyển hướng đầu ra từ màn hình vào một tập tin bằng cách sử dụng cú pháp sau:

cmd> file

ls> file

Tuy nhiên, một số lỗi thời gian được hiển thị trên màn hình. Làm thế nào để lưu trữ và chuyển hướng đầu ra từ màn hình máy tính cho một tập tin trên hệ thống Linux hoặc Unix?

Bash/ksh và shell hiện đại khác trên Linux có ba mô tả file:

  1. stdin (0)

  2. stdout (1)

  3. stderr (2)

i) Cú pháp Để chuyển hướng tất cả các đầu ra vào file

Cú pháp như sau để chuyển hướng đầu ra (stdout) như sau:

command-name > output.txt
command-name > stdout.txt
ii) Cú pháp để chuyển hướng tất cả lỗi vào file

Cú pháp chuyển hướng lỗi (stderr) như sau:

command-name 2> errors.txt
command-name 2> stderr.txt
iii) Cú pháp để chuyển hướng cả hai đầu ra (stdout) và lỗi (stderr) vào các file khác nhau

The syntax:


command1 > out.txt 2> err.txt
command2 -f -z -y > out.txt 2> err.txt

iv) Cú pháp để chuyển hướng cả hai đầu ra (stdout) và lỗi (stderr) vào cùng 1 file

The syntax is:
command1 > everything.txt 2>&1
command1 -arg > everything.txt 2>&1

v) Cú pháp chuyển hướng lỗi (stderr) vào null hoặc zero devices

Dữ liệu ghi vào một tập tin null hoặc zero special file được loại bỏ bởi hệ thống của bạn. Điều này rất hữu ích để bịt lỗi output (cũng được biết như là 'lỗi spam'):

command1 2> /dev/null
command1 2> /dev/zero
command2 -arg 2> /dev/null
command2 -arg 2> /dev/zero

Mẹo: Sử dụng lệnh tee để chuyển hướng cả file và screen đồng thời

The syntax is:

command1 |& tee log.txt
## or ##
command1 -arg |& tee log.txt
## or ##
command1 2>&1 | tee log.txt

Another usage:

#!/bin/bash
# My script to do blah ...
foo(){
:
} 2>&1 | tee foo.log

OR

#!/bin/bash
# My script to do blah ...
{
command1
command2
} 2>&1 | tee script.log

Nguồn: http://www.cyberciti.biz/faq/linux-redirect-error-output-to-file/