Làm thế nào để lưu đầu ra của một lệnh vào một tập tin trong Bash (aka Linux và MacOS Terminal)

Mục lục:

Làm thế nào để lưu đầu ra của một lệnh vào một tập tin trong Bash (aka Linux và MacOS Terminal)
Làm thế nào để lưu đầu ra của một lệnh vào một tập tin trong Bash (aka Linux và MacOS Terminal)

Video: Làm thế nào để lưu đầu ra của một lệnh vào một tập tin trong Bash (aka Linux và MacOS Terminal)

Video: Làm thế nào để lưu đầu ra của một lệnh vào một tập tin trong Bash (aka Linux và MacOS Terminal)
Video: Nhập Gia Tùy Tục 3 Tập 14| Lee Min Ho da đen đụng độ John Ngộ Không, Việt Nam nhất thế giới vì? - YouTube 2024, Tháng tư
Anonim
Khi bạn chạy một lệnh tại dấu nhắc bash, nó thường in đầu ra của lệnh đó trực tiếp đế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" đầ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 kết quả sau này.
Khi bạn chạy một lệnh tại dấu nhắc bash, nó thường in đầu ra của lệnh đó trực tiếp đế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" đầ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 kết quả sau này.

Tính năng này hoạt động 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 đến tệp chỉ

Để 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 một tệp mà bạn muốn đầu ra được chuyển hướng đến.

  • >

    chuyển hướng đầu ra của lệnh sang một tệp, thay thế nội dung hiện có của tệp.

  • >>

    chuyển hướng đầu ra của lệnh tới một tệp, 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” - đầu ra tiêu chuẩn, là màn hình - thành 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 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 và thư mục trong thư mục hiện tại. Nhưng nó sẽ không in chúng vào màn hình - nó sẽ lưu chúng vào tệp bạn chỉ định.

ls > /path/to/file

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 và bash hợp lệ nào 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
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ụ:

cat

lệnh in nội dung của một tập tin vào thiết bị đầu cuối:

cat /path/to/file

Nhớ cái gì đó
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

>>

thay vào đó. Ví dụ, lệnh sau sẽ nối thêm thông tin hệ thống vào tệp bạn chỉ định:

uname -a >> /path/to/file

Nếu tệp chưa tồn tại, bash sẽ tạo tệp. Nếu không, bash sẽ để nguyên nội dung hiện có của tệp và thêm đầ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 thích để tiếp tục thêm đầu ra 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 thích để tiếp tục thêm đầu ra vào cuối tệp.

Tùy chọn hai: In ra thông thường và chuyển hướng nó vào một tập tin

Bạn có thể không thích chuyển hướng đầu ra bằng

>

hoặc là

>>

các 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ì

tee

lệnh cho. Lệnh tee in đầu vào 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.

Để đường dẫn đầu ra của lệnh đến

tee

in nó vào 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:

command | tee /path/to/file

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

>

nhà điều hành.

Để đường dẫn đầu ra của lệnh đến
Để đường dẫn đầu ra của lệnh đến

tee

in tới màn hình của bạn và lưu nó vào một tệp, nhưng gắn nó vào cuối tệp:

command | tee -a /path/to/file

Thao tác này sẽ thêm đầu ra vào cuối tệp, giống như

>>

nhà điều hành.

Đề xuất: