Câu trả lời:
>
không phải là một lệnh mà là một chuyển hướng mô tả tập tin. Điều này có nghĩa là shell phân tích cú pháp này, loại bỏ nó khỏi dòng lệnh và thay đổi môi trường cho quy trình mới mà nó được bắt đầu. Quá trình mới không nhận thấy phần này của dòng lệnh. Đó là lý do tại sao bạn có thể đặt nó ở mọi nơi: Lúc đầu, cuối hoặc ở giữa.
Tìm REDIRECTION
khối trong man bash
.
Để chắp thêm vào một tập tin hiện có, bạn cần sử dụng >>
.
>
là một toán tử chuyển hướng . Lưu ý rằng việc sử dụng >
để chuyển hướng đến một tệp thông thường sẽ ghi đè lên những gì đã có, trừ khi noclobber được đặt. >>
sẽ nối vào cuối tập tin.
noclobber
đã được đặt (bash).
noclobber
không chỉ là một bashism. Đó là một phần của POSIX
Như những người khác đã trả lời, >
không phải là một lệnh, mà là một toán tử chuyển hướng. Tuy nhiên, thuật ngữ 'toán tử chuyển hướng' không đề cập cụ thể đến >
, nhưng một số toán tử chuyển hướng có thể khác nhau. Các dash
liệt kê người đàn ông sau khi các nhà khai thác chuyển hướng:
< > >| << >> <& >& <<- <>
Tôi không chắc chắn có một tên cá nhân hợp lệ cho mỗi người. Có thể nếu bạn đào qua một số hướng dẫn sử dụng vỏ cũ, bạn sẽ tìm thấy một cái gì đó thú vị. Nguồn này , chính xác hoặc không chính xác, chắc chắn có một cách để đặt tên cho một số trong số họ:
> - 'output redirection operator'
< - 'input redirection operator'
>> - 'output append operator'
Nhưng cũng:
2> - 'standard error redirection operator'
Tuy nhiên tôi không nghĩ rằng điều này thực sự chính xác vì về 2
mặt kỹ thuật là một đối số chứ không phải là một phần của toán tử.
Tham khảo nhanh (trong trường hợp bạn không nhận ra bất kỳ câu hỏi nào ở trên):
> - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>| - as above but overwrite the file even if the noclobber shell option is set
>> - append output stream to file
< - redirect input stream from file, n defaults to 0 for stdin
<> - open file for reading and writing on stdin
>& - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<< - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.
Trong bash
bạn cũng có:
<<< - here string, a one line here file. Eg <<<"foo bar"
<<-
xóa các tab và khoảng trắng hàng đầu ?
>
chuyển hướng đầu ra cho một tập tin (hoặc thiết bị) ghi đè lên bất cứ thứ gì đã tồn tại ở đó
>>
chuyển hướng đầu ra cho một tệp (hoặc thiết bị) nối thêm vào bất cứ thứ gì đã tồn tại ở đó
<
hướng dữ liệu từ tệp (hoặc thiết bị) đến chương trình hoặc thiết bị
<<
một tài liệu ở đây
<<
là một tài liệu ở đây
noclobber
được đặt, sau đó>|
sẽ ghi đè và cho phép ghi đè tệp.