Khi bạn chạy một lệnh trong cửa sổ Terminal, đầu ra của lệnh thường được hiển thị trên Terminal hoặc màn hình, vì vậy bạn có thể đọc nó ngay lập tức. Bạn cũng có thể xuất đầu ra của một lệnh vào một tệp, nếu bạn muốn lưu nó.
Lưu đầu ra của một lệnh vào một tệp sẽ hữu ích nếu bạn đang cố gắng chẩn đoán sự cố. Để nhận được trợ giúp từ bộ phận hỗ trợ kỹ thuật, bạn có thể phải chạy một số lệnh trên máy tính của mình và gửi kết quả cho nhóm hỗ trợ. Bạn có thể làm điều này rất dễ dàng bằng cách sử dụng chuyển hướng đầu ra trên dòng lệnh.
Trong bài viết này, FUNiX sẽ giới thiệu cách gửi đầu ra của một lệnh tới một tệp văn bản trong bash shell trên Windows, Mac và Linux.
Lưu ý: Chúng tôi sẽ sử dụng Mac Terminal trong ví dụ của mình, nhưng cách thực hiện trong bash shell trên Linux và bash shell mới trong Windows 10 cũng tương tự như vậy.
Chuyển hướng đầu ra đến tệp
Có hai toán tử (operator) để chuyển hướng đầu ra của lệnh tới tệp thay vì màn hình.
Biểu tượng > tạo một tệp mới nếu không có hoặc ghi đè tệp nếu nó đã tồn tại. >> cũng tạo một tệp mới nếu nó không tồn tại, nhưng nó nối văn bản vào cuối tệp nếu nó đã tồn tại, thay vì ghi đè tệp.
Thay thế /path/to/file bằng đường dẫn đầy đủ đến tệp bạn muốn sử dụng.
ls > /path/to/file
Đây là lệnh cho ví dụ của chúng ta:
ls > /Users/lorikaufman/TerminalOutput/ls_output.txt
Để xem nội dung của tệp trong cửa sổ Terminal, hãy sử dụng lệnh cat như được hiển thị trong lệnh sau. Một lần nữa, thay thế /path/to/file bằng đường dẫn đầy đủ đến tệp bạn muốn xem.
cat /path/to/file
Toán tử > thay thế nội dung của tệp hiện có mỗi khi bạn sử dụng nó để chuyển hướng đầu ra. Nếu bạn muốn lưu kết quả đầu ra từ nhiều lệnh vào một tệp duy nhất, hãy sử dụng toán tử >>. Điều này nối kết quả đầu ra của một lệnh vào cuối tệp được chỉ định, nếu nó đã tồn tại. Nếu tệp không tồn tại, nó sẽ tạo một tệp mới.
Ví dụ: chúng ta sẽ thêm thông tin hệ thống vào cuối tệp đã tạo ở trên. Vì vậy, trong dòng sau, uname -a là lệnh, theo sau là toán tử chuyển hướng >>. Sau đó là đường dẫn đầy đủ đến tệp mà chúng ta muốn nối đầu ra của lệnh uname.
Tham số (parameter) -a trong lệnh uname xuất ra tất cả thông tin hệ thống có sẵn.
uname -a >> /Users/lorikaufman/TerminalOutput/ls_output.txt
Để xem tệp với thông tin được nối thêm trong cửa sổ Terminal, hãy nhập lệnh sau, với đường dẫn đầy đủ đến tệp của bạn.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Lặp lại quá trình này nhiều lần nếu bạn cần để liên tục nối đầu ra của lệnh vào cuối tệp.
Đây là một ví dụ khác về việc gửi đầu ra của lệnh ls dưới dạng cây thư mục, với các thư mục con được liệt kê đệ quy (tham số R) và một tệp trên mỗi dòng (tham số 1).
ls -1R > /Users/lorikaufman/TerminalOutput/dir_tree.txt
Sau đó, chúng ta sử dụng lệnh cat, như đã đề cập trước đó, để xem nội dung của tệp trong cửa sổ Terminal.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Hiển thị đầu ra trên màn hình và chuyển hướng nó thành tệp
Toán tử > và >> không hiển thị đầu ra của lệnh trên màn hình. Đầu ra chỉ được gửi đến một tệp.
Nếu bạn muốn gửi kết quả đầu ra đến một tệp và xem nó trên màn hình, hãy sử dụng lệnh tee thay vì các toán tử > và >>.
ls | tee /Users/lorikaufman/TerminalOutput/ls_output.txt
Lệnh trên thay thế tất cả nội dung trong tệp hoặc tạo một nội dung mới nếu nó không tồn tại, giống như toán tử >. Chúng ta đã sử dụng lệnh cat sau để xem nội dung tệp trong cửa sổ Terminal.
cat /Users/lorikaufman/TerminalOutput/ls_output.txt
Để sử dụng lệnh tee để hiển thị kết quả ra màn hình và nối nó vào cuối tệp, hãy nhập lệnh sau. Ở đây, chúng ta đang thêm thông tin hệ thống đầy đủ vào cuối tệp bằng lệnh uname -a , giống như đã làm với toán tử >>, nhưng bên cạnh đó cũng gửi kết quả ra màn hình.
uname -a | tee -a /Users/lorikaufman/TerminalOutput/ls_output.txt
Lệnh sau đây là phiên bản tee của việc hiển thị một cách đệ quy cây thư mục vào một tệp và ra màn hình, một tệp trên mỗi dòng, giống như chúng ta đã làm với toán tử >.
ls -1R | tee /Users/lorikaufman/TerminalOutput/dir_tree.txt
Sau đó, chúng ta sử dụng lại lệnh cat để xem nội dung của tệp.
cat /Users/lorikaufman/TerminalOutput/dir_tree.txt
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/tag/save-command-line-output-file-windows-mac-linux/
Bình luận (0
)