NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
25/08/2024
Lượt xem

Sao chép dữ liệu bằng lệnh tee trong Linux qua 4 ví dụ chi tiết

25/08/2024
9 phút đọc
Lượt xem

Đánh giá

Trong quá trình làm việc với Linux, bạn sẽ thường phải xử lý các file log, theo dõi tiến trình của một lệnh hoặc tạo báo cáo. Do đó, lệnh tee sẽ là công cụ hỗ trợ bạn trong những trường hợp này. Bài viết dưới dây sẽ giúp bạn hiểu rõ hơn về lệnh tee trong Linux thông qua 4 ví dụ sử dụng chi tiết.

Lệnh tee trong Linux là gì?

Lệnh tee trong Linux là một công cụ sao chép, dữ liệu đầu vào (input) sang đầu ra (output) trên một hoặc nhiều file khác nhau tại cùng một thời điểm. Dòng lệnh được thực hiện thông qua kỹ thuật kết nối các lệnh với nhau.

Lệnh tee trong Linux
Lệnh tee trong Linux

Cú pháp:

tee [OPTION]... [FILE]...

Trong đó:

[OPTION]: có thể sử dụng nhiều tùy chọn khác nhau cùng lúc.

[FILE]:  có thể chỉ định nhiều tệp tin cùng lúc.

Bên cạnh đó, bạn có thể tham khảo một số bài viết khác về các câu lệnh trong Linux để hiểu thêm chi tiết

6 tùy chọn của lệnh tee trong Linux

Bạn có thể tự kiểm tra các tùy chọn của lệnh tee bằng cách nhập lệnh man sau:

man tee
Tuỳ chọnMô tả
-aThêm dữ liệu vào cuối tệp hiện có thay vì ghi đè
-iBỏ qua tín hiệu ngắt, đảm bảo lệnh tee hoạt động ổn định
-pKiểm tra lỗi ghi vào các tệp không phải là pipe
--helpHiển thị trang trợ giúp chi tiết về lệnh tee
--versionXem thông tin phiên bản của lệnh tee

Lưu ý: Các tùy chọn trong Linux CLI phân biệt chữ hoa và thường. Vì vậy hãy nhập chính xác các tùy chọn lệnh.

Ví dụ 1: Ghi kết quả lệnh ra nhiều file cùng lúc

Bạn có thể hiển thị output của một lệnh trên terminal và đồng thời lưu output này vào nhiều file khác nhau bằng lệnh tee trong Linux. Bạn cần sử dụng pipe (ký hiệu |) để chuyển hướng output của lệnh trên đến lệnh tee và liệt kê các tên file theo mong muốn. Lệnh tee sẽ tự động tạo file mới nếu chúng chưa có sẵn.

Ví dụ dưới đây, bạn sẽ ghi output của lệnh ls vào các file list1.txtlist2.txt. Thực hiện các bước như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh ls sau vào command prompt và nhấn phím Enter:

ls |tee list1.txt list2.txt

Kết quả: Lệnh ls sẽ hiển thị trên màn hình và đồng thời được lưu vào hai file list1.txtlist2.txt trong thư mục hiện tại.

Ghi kết quả lệnh ra nhiều file cùng lúc
Ghi kết quả lệnh ra nhiều file cùng lúc

Tiếp theo, bạn sẽ thấy danh sách tương tự được hiển thị trên terminal cũng đã được lưu trữ vào các file list1.txtlist2.txt. Lúc này, Bạn có thể sử dụng lệnh cat để xem nội dung của các file này.

sử dụng lệnh cat trong Linux để xem nội dung của các file này
Sử dụng lệnh cat trong Linux để xem nội dung của các file này

Ví dụ 2: Thêm nội dung trả về từ lệnh vào cuối file có sẵn

Bạn có thể sử dụng tùy chọn -a trong lệnh tee để thêm nội dung trả về từ một lệnh vào cuối một file có sẵn. Ví dụ dưới đây sẽ hướng dẫn bạn cách ghi nội dung trả về từ lệnh ls -l vào cuối file list2.txt

Bạn hãy làm theo 2 bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ls |tee -a list2.txt

Kết quả: Bạn có thể thấy danh sách đầy đủ các file và thư mục trong đường dẫn hiện tại sau khi chạy lệnh ls -l.

Thêm nội dung trả về từ lệnh vào cuối file có sẵn
Thêm nội dung trả về từ lệnh vào cuối file có sẵn

Sau đó, danh sách trên sẽ được thêm vào sau nội dung hiện có của file list2.txt. Bạn có thể sử dụng lệnh cat để xem nội dung file.

sử dụng lệnh cat để xem nội dung file txt2
Sử dụng lệnh cat để xem nội dung file txt2

Ví dụ 3: Bỏ qua gián đoạn từ lệnh khác khi thực hiện lệnh tee

Trong ví dụ này, bạn sẽ gián đoạn lệnh ping khi kiểm tra server https://linuxsimply.com/ bằng tùy chọn -i. 

Các bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ping linuxsimply.com | tee -i ping.txt

Kết quả: Như hình trên, bạn đã dùng tổ hợp phím CTRL+C để gián đoạn dòng lệnh ping. Tuy nhiên, lệnh vẫn tiếp tục chạy ngầm và hoàn tất việc kiểm tra server https://linuxsimply.com/

Bỏ qua gián đoạn khi chạy lệnh 
Bỏ qua gián đoạn khi chạy lệnh 

Ví dụ 4: Kết hợp lệnh tee với các lệnh khác trong Linux

Bạn có thể sử dụng kết quả của lệnh tee làm đầu vào cho các lệnh khác thông qua kỹ thuật kết nối các dòng lênh (piping) với ký hiệu (|). Trong trường hợp này, file được tạo ra bằng lệnh tee sẽ được kết nối đầu vào đến dòng lệnh tiếp theo. 

Xét ví dụ, bạn cần lưu danh sách các file và thư mục của đường dẫn hiện tại vào file list1.txt. Sau đó, bạn sẽ sử dụng lệnh grep để tìm các tên file có phần mở rộng .txt. Các bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

ls | tee list1.txt| grep ".txt"

Kết quả: Bạn sẽ thấy danh sách các file có phần mở rộng .txt được hiển thị trên màn hình. Lệnh grep đã lọc thành công kết quả từ file list1.txt được tạo ra bởi lệnh tee.

lệnh grep đã lọc thành công kết quả từ file
Lệnh grep đã lọc thành công kết quả từ file

Câu hỏi thường gặp

Đâu là sự khác biệt giữa lệnh tee và lệnh redirect (>) trong Linux

Lệnh tee và lệnh redirect (>) đều được sử dụng trong việc điều hướng đầu ra của một lệnh. Tuy nhiên, lệnh redirect lại có những điểm khác nhau so với lệnh tee:
Chức năng: Chuyển hướng toàn bộ đầu ra tiêu chuẩn của một lệnh sang một file hoặc thiết bị khác.
Cách hoạt động: Lệnh redirect sẽ ghi đè lên nội dung của file đích nếu file đó đã tồn tại.

Có những cách nào để tối ưu hóa hiệu suất của lệnh tee khi sử dụng với các file lớn?

Cách tối ưu hóa hiệu suất của lệnh tee khi làm việc với các file lớn:
1. Sử dụng buffer lớn hơn
2. Tránh ghi đè lên file
3. Sử dụng tee với các lệnh khác
4. Sử dụng các công cụ chuyên dụng
5. Tối ưu hóa hệ thống
6. Sử dụng các công cụ phân tích hiệu suất

Có thể kết hợp lệnh tee với các lệnh khác như grep, awk để xử lý dữ liệu đầu ra không?

Bạn có thể kết hợp lệnh tee với các lệnh khác như grep, awk để lọc, xử lý dữ liệu đầu ra linh hoạt và tự động hoá công việc, nâng cao năng suất.

Lời kết

Trên đây là những thông tin về lệnh tee trong Linux. Một dòng lệnh giúp bạn làm việc hiệu quả hơn trong môi trường Linux. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về tee và cách sử dụng lệnh để tối ưu hóa công việc của mình.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG