tee lệnh trong Linux Shell / dòng lệnh phân tách đầu ra của ứng dụng - gửi đầu ra tới cả tệp và GIỚI THIỆU (bảng điều khiển hoặc ứng dụng khác). Đây là cách sử dụng nó.
tee lệnh được đặt tên cho bộ chia chữ T được sử dụng trong hệ thống ống nước - một đường ống chuyển hướng nước từ một nguồn theo hai hướng.
Cú pháp lệnh tee
tee là một lệnh có mục đích đơn giản và cú pháp đơn giản:
tee OPTIONS FILE
Lưu ý rằng:
- TÙY CHỌN là danh sách các tùy chọn từ bảng bên dưới
- TẬP TIN là đường dẫn đến tệp bạn muốn lưu đầu ra
- Đầu vào cần được chuyển hướng hoặc chuyển hướng đến tee - nếu không, nó không liên quan gì đến
- Điều này được thực hiện bằng cách chuyển hướng đầu vào / đầu ra tiêu chuẩn - xem bên dưới để biết các ví dụ
- tee sẽ xuất cả dữ liệu được cung cấp cho nó thành FILE được chỉ định cũng như STDOUT (đầu ra tiêu chuẩn)
- Theo mặc định, điều này sẽ được xuất ra bảng điều khiển, nhưng nó cũng có thể được chuyển hướng đến các ứng dụng khác
Tùy chọn
Dưới đây là các tùy chọn được sử dụng phổ biến nhất cho tee lệnh:
-a, –append | Nối vào FILE đã cho, không ghi đè |
-i, –ignore-ngắt | Bỏ qua các tín hiệu ngắt |
Để có thêm tùy chọn, bao gồm cả cách chẩn đoán lỗi, bạn có thể xem hướng dẫn sử dụng bằng cách chạy:
man tee
tee Ví dụ về lệnh
Dưới đây là một số ví dụ đơn giản về cách tee có thể được sử dụng.
Tất cả các ví dụ này đều sử dụng echo lệnh này chỉ xuất ra văn bản được cung cấp cho nó.
Xem và lưu đầu ra từ một lệnh vào một tệp mới
Đầu ra của echo lệnh sẽ được chuyển đến tee, sẽ lưu nó vào một tệp cũng như xuất ra bảng điều khiển:
echo "hello!" | tee hello.txt
Nếu tệp hello.txt tồn tại, nó sẽ bị ghi đè.
Xem và lưu Kết quả từ Lệnh vào Tệp Hiện có
Ví dụ này thực hiện tương tự như trên, nhưng nó sẽ nối vào cuối tệp hiện có hơn là ghi đè lên:
echo "hello again!" | tee -a hello.txt
Lưu hoặc nối đầu ra thành nhiều tệp
Nhiều tệp có thể được chỉ định, phân tách bằng dấu cách:
echo "hello several files!" | tee hello1.txt hello2.txt hello3.txt
Chuyển hướng / Ống tee Đầu ra
Đầu ra tiêu chuẩn của tee có thể được chuyển hướng và chuyển hướng. Ví dụ dưới đây sẽ lưu đầu ra của echo thành hello.txt. The đầu ra sau đó sẽ được chuyển đến grep thay vì xuất ra bảng điều khiển:
echo "hello!" | tee hello.txt | grep hello
Ví dụ:vì lợi ích của nó, lệnh grep (được sử dụng để tìm kiếm đầu vào văn bản) chỉ cần tìm kiếm đầu ra từ tee cho từ “xin chào”.
Bỏ qua ngắt
Bỏ qua các ngắt (ví dụ:nhấn CTRL + C để thoát lệnh) có thể dẫn đến đầu ra sạch hơn từ tee :
echo "hello!" | tee -i hello.txt
Sử dụng tee Với sudo
The sudo lệnh cho phép bạn thực thi các lệnh với tư cách là người dùng root mà không cần đăng nhập với tư cách root và được sử dụng phổ biến.
Trong đoạn mã sau - sudo không cho phép bạn chuyển hướng đầu ra của các lệnh, dưới dạng sudo bản thân lệnh không thực hiện chuyển hướng như nó xuất hiện trước biểu tượng chuyển hướng (> ):
sudo echo "hello!" > /root/hello.txt
… Điều này sẽ không thành công với lỗi quyền vì / root thư mục yêu cầu đặc quyền root, nhưng sudo lệnh chỉ áp dụng các đặc quyền này cho echo lệnh - không phải chuyển hướng đến sau đó.
Một mẹo để giải quyết vấn đề này là sử dụng tee lệnh:
echo "hello!" | sudo tee /root/hello.txt
Điều này sẽ hoạt động vì đầu ra của echo lệnh được chuyển tới tee , là được chạy với các đặc quyền quản trị qua sudo - và tee lưu đầu ra.