Lệnh đọc từ stdin và ghi vào cả hai stdout và một hoặc nhiều tệp hơn cùng một lúc. tee chủ yếu được sử dụng kết hợp với các lệnh khác thông qua pipeline.

Trong bài viết này, chúng ta tìm hiểu những kiến ​​thức cơ bản về cách sử dụng lệnh tee .

Cú pháp lệnh

Cú pháp của lệnh tee như sau:

tee [OPTIONS] [FILE]

Sao chép

  • OPTIONS  :
    • -a--append ) – Không ghi đè lên các tệp thay vào đó hãy nối thêm vào các tệp đã cho.
    • -i--ignore-interrupts ) – Bỏ qua các tín hiệu ngắt.
    • Sử dụng tee --help để xem tất cả các tùy chọn có sẵn.
  • FILE_NAMES – Một hoặc nhiều tệp. Mỗi dữ liệu đầu ra được ghi vào.

Cách sử dụng lệnh tee

Cách sử dụng cơ bản nhất của lệnh tee là hiển thị đầu ra tiêu chuẩn ( stdout ) của một chương trình và ghi nó vào một tệp.

Trong ví dụ sau, chúng ta đang sử dụng df lệnh để lấy thông tin về dung lượng ổ đĩa có sẵn trên hệ thống tệp. Đầu ra được chuyển tới lệnh tee, lệnh này sẽ hiển thị đầu ra tới thiết bị đầu cuối và ghi cùng một thông tin vào tệp disk_usage.txt .

df -h | tee disk_usage.txt
Filesystem      Size  Used Avail Use% Mounted on
dev             7.8G     0  7.8G   0% /dev
run             7.9G  1.8M  7.9G   1% /run
/dev/nvme0n1p3  212G  159G   43G  79% /
tmpfs           7.9G  357M  7.5G   5% /dev/shm
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
tmpfs           7.9G   15M  7.9G   1% /tmp
/dev/nvme0n1p1  511M  107M  405M  21% /boot
/dev/sda1       459G  165G  271G  38% /data
tmpfs           1.6G   16K  1.6G   1% /run/user/120

Bạn có thể xem nội dung của disk_usage.txt tệp bằng lệnh cat .

Ghi vào nhiều tệp

Các lệnh tee cũng có thể viết thư cho nhiều file. Để làm như vậy, hãy chỉ định danh sách các tệp được phân tách bằng dấu cách làm đối số:

command | tee file1.out file2.out file3.out

Nối vào tệp

Theo mặc định, lệnh tee sẽ ghi đè lên tệp được chỉ định. Sử dụng tùy chọn -a--append ) để nối đầu ra vào tệp :

command | tee -a file.out

Bỏ qua các đoạn ngắt

Để bỏ qua các ngắt, hãy sử dụng tùy chọn -i--ignore-interrupts ). Điều này hữu ích khi dừng lệnh trong khi thực hiện với CTRL+C và muốn tee thoát một cách duyên dáng.

command | tee -i file.out

Ẩn đầu ra

Nếu bạn không muốn tee ghi vào stdout, bạn có thể chuyển hướng nó đến /dev/null :

command | tee file.out >/dev/null

Sử dụng tee trong Liên kết với sudo

Giả sử bạn muốn ghi vào một tệp thuộc quyền sở hữu của root với tư cách là người dùng sudo. Lệnh sau sẽ không thành công vì chuyển hướng đầu ra không được thực hiện bởi sudo. Việc chuyển hướng được thực hiện với tư cách là người dùng không có đặc quyền.

sudo echo "newline" > /etc/file.conf

Đầu ra sẽ giống như sau:

bash: /etc/file.conf: Permission denied

Chỉ cần thêm sudo  trước lệnh tee như hình dưới đây:

echo "newline" | sudo tee -a /etc/file.conf

tee sẽ nhận đầu ra của lệnh echo , nâng cấp lên quyền sudo và ghi vào tệp.

Sử dụng tee kết hợp với sudo cho phép bạn ghi vào các tệp do người dùng khác sở hữu.

Phần kết luận

Các lệnh tee đọc từ đầu vào tiêu chuẩn và viết nó vào đầu ra tiêu chuẩn và một quặng nhiều file.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments