Làm thế nào để nối đầu ra vào một tập tin?


125

Làm thế nào tôi có thể làm một cái gì đó giống như command > filecách nó gắn vào tệp, thay vì ghi đè?


1
(Có rất nhiều và rất nhiều - có lẽ là quá nhiều! - những điều tốt đẹp trong hướng dẫn tham khảo bash bao gồm tất cả các loại chuyển hướng. Điều chỉnh khi cần thiết cho shell.)

4
Bạn cũng có thể sử dụng tee, nếu bạn muốn chuyển hướng đến cả STDOUT và chắp thêm kết quả vào một tệp. Ví dụ: echo "xin chào" | tee -a somefile.txt, trong đó cờ -a là viết tắt của append.
Henrik

Câu trả lời:



103

Vâng.

command >> fileđể chuyển hướng chỉ stdout của command.

command >> file 2>&1để chuyển hướng stdoutstderr vào tệp (hoạt động trong bash, zsh)

Và nếu bạn cần sử dụng sudo, hãy nhớ rằng chỉ cần

sudo command >> /file/requiring/sudo/privilegeskhông hoạt động, vì độ cao đặc quyền áp dụng cho commandnhưng không phải là phần chuyển hướng vỏ. Tuy nhiên, chỉ cần sử dụng teegiải quyết vấn đề:

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


6
Tôi đang sử dụng điều này cho tất cả chương trình chụp đầu ra.sh 2> & 1 | tee -a screen.log. "-a" là viết tắt của phụ lục.
Xdg

-3

bạn có thể nối các tập tin với dấu >>. Nó chèn nội dung ở phần cuối của tệp mà chúng ta đang sử dụng. Nếu tệp cho tên của nó là myfile chứa xyz thì cat >> myfile abc ctrl d

sau quá trình trên, myfile chứa xyzabc.


4
Nhà >>điều hành đã được đề cập ba năm trước đó và OP biết việc nối thêm nghĩa là gì.
Dan Dascalescu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.