Trang chủ » làm thế nào để » Cách lưu kết quả của lệnh vào tệp trong Bash (còn gọi là Linux và macOS Terminal)

    Cách lưu kết quả của lệnh vào tệp trong Bash (còn gọi là Linux và macOS Terminal)

    Khi bạn chạy một lệnh tại dấu nhắc bash, nó thường in trực tiếp đầu ra của lệnh đó đến thiết bị đầu cuối để bạn có thể đọc nó ngay lập tức. Nhưng bash cũng cho phép bạn chuyển hướng chuyển hướng đầu ra của bất kỳ lệnh nào, lưu nó vào một tệp văn bản để bạn có thể xem lại đầu ra sau.

    Điều này hoạt động trong bash trên bất kỳ hệ điều hành nào, từ Linux và macOS đến môi trường bash dựa trên Ubuntu của Windows 10.

    Tùy chọn Một: Chuyển hướng đầu ra thành một tệp

    Để sử dụng chuyển hướng bash, bạn chạy một lệnh, chỉ định > hoặc là >> toán tử, và sau đó cung cấp đường dẫn của tệp bạn muốn đầu ra được chuyển hướng đến.

    •  > chuyển hướng đầu ra của lệnh thành tệp, thay thế nội dung hiện có của tệp.
    •  >> chuyển hướng đầu ra của lệnh vào một tệp, nối thêm đầu ra vào nội dung hiện có của tệp.

    Về mặt kỹ thuật, điều này chuyển hướng stdout trực tiếp của Windows - đầu ra tiêu chuẩn, là màn hình cho một tệp.

    Đây là một ví dụ đơn giản. Các ls lệnh liệt kê các tập tin và thư mục trong thư mục hiện tại. Vì thế. khi bạn chạy lệnh sau, ls sẽ liệt kê các tập tin và thư mục trong thư mục hiện tại. Nhưng nó sẽ không in chúng ra màn hình - nó sẽ lưu chúng vào tập tin bạn chỉ định.

    ls> / đường dẫn / đến / tập tin

    Bạn không phải chỉ định đường dẫn đến tệp hiện có. Chỉ định bất kỳ đường dẫn hợp lệ nào và bash sẽ tạo một tệp tại vị trí đó.

    Nếu bạn xem nội dung của tệp, bạn sẽ thấy ls đầu ra của lệnh. Ví dụ: con mèo lệnh in nội dung của tệp vào thiết bị đầu cuối:

    mèo / đường dẫn / đến / tập tin

    Nhớ cái gì đó >  toán tử thay thế nội dung hiện có của tệp bằng đầu ra của lệnh. Nếu bạn muốn lưu đầu ra của nhiều lệnh vào một tệp, bạn sẽ sử dụng >> Toán tử thay thế. Ví dụ: lệnh sau sẽ nối thông tin hệ thống vào tệp bạn chỉ định:

    uname -a >> / path / to / file

    Nếu tệp không tồn tại, bash sẽ tạo tệp. Nếu không, bash sẽ để riêng nội dung hiện có của tệp và nối đầu ra vào cuối tệp.

    Khi bạn xem nội dung của tệp, bạn sẽ thấy kết quả của lệnh thứ hai được thêm vào cuối tệp:

    Bạn có thể lặp lại quá trình này bao nhiêu lần tùy ý để tiếp tục nối đầu ra vào cuối tệp.

    Tùy chọn hai: In đầu ra bình thường và chuyển hướng nó đến một tệp

    Bạn có thể không thích chuyển hướng đầu ra với > hoặc là >> toán tử, vì bạn sẽ không thấy đầu ra của lệnh trong thiết bị đầu cuối. Đó là những gì phát bóng lệnh là cho. Lệnh tee in đầu vào mà nó nhận được vào màn hình lưu nó vào một tập tin cùng một lúc.

    Để dẫn đầu ra của lệnh tới phát bóng, in nó ra màn hình của bạn và lưu nó vào một tập tin, sử dụng cú pháp sau:

    lệnh | tee / đường dẫn / đến / tập tin

    Điều này sẽ thay thế bất cứ thứ gì trong tệp bằng đầu ra của lệnh, giống như > nhà điều hành.

    Để dẫn đầu ra của lệnh tới phát bóng , in ra màn hình của bạn và lưu nó vào một tệp, nhưng nối nó vào cuối tệp:

    lệnh | tee -a / đường dẫn / đến / tập tin

    Điều này sẽ nối đầu ra vào cuối tập tin, giống như >> nhà điều hành.

    Shell bash bao gồm một số toán tử nâng cao, bổ sung thực hiện các chức năng tương tự. Chúng sẽ đặc biệt hữu ích nếu bạn đang viết các tập lệnh bash. Tham khảo chương Chuyển hướng I / O trong Hướng dẫn Bash-Scripting nâng cao để biết thêm thông tin chi tiết.