Đôi khi, khi làm việc trên dòng lệnh trong Linux, bạn cần biết thêm về một tệp. Ví dụ, bạn có thể muốn biết thông tin như kích thước tệp, số inode, quyền truy cập, thời gian truy cập hoặc sửa đổi gần nhất, v.v. Bạn sẽ vui mừng khi biết rằng có một tiện ích dòng lệnh stat cung cấp tất cả thông tin này cùng một lúc.
Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của stat bằng một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, cần lưu ý rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ cung cấp cho bạn ý tưởng hay về cách stat hoạt động.
Ví dụ:
Vì vậy, bạn có thể xem các chi tiết như tên tệp, kích thước, loại tệp, quyền truy cập, UID và GID, cũng như thời gian Truy cập/Sửa đổi/Thay đổi.
Ví dụ:
tạo ra kết quả đầu ra sau:
Tương tự, bạn có thể sử dụng %n cho tên tệp, %s cho kích thước và %U cho tên người dùng của chủ sở hữu tệp.
Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của stat bằng một số ví dụ dễ hiểu. Nhưng trước khi làm điều đó, cần lưu ý rằng tất cả các ví dụ được đề cập ở đây đều đã được thử nghiệm trên Ubuntu 16.04LTS.
Lệnh stat của Linux
Lệnh stat trong Linux cho phép bạn xem trạng thái của một tệp (hoặc thậm chí là một hệ thống tệp). Sau đây là cú pháp của lệnh:
Mã:
stat [OPTION]... FILE...
Câu hỏi 1. Làm thế nào để sử dụng lệnh stat?
Cách sử dụng cơ bản của công cụ này rất dễ - tất cả những gì bạn phải làm là chạy lệnh 'stat' với tên tệp mà bạn muốn biết thêm.
Mã:
stat [tên tệp]
Mã:
stat test.txt
Vì vậy, bạn có thể xem các chi tiết như tên tệp, kích thước, loại tệp, quyền truy cập, UID và GID, cũng như thời gian Truy cập/Sửa đổi/Thay đổi.
Câu hỏi 2. Làm thế nào để hiển thị thông tin stat ở dạng ngắn gọn?
Dạng đầu ra ngắn gọn giúp các chương trình khác dễ dàng phân tích cú pháp đầu ra. Để tạo thông tin đầu ra 'stat' theo dạng này, hãy sử dụng tùy chọn dòng lệnh -t.
Mã:
stat -t test.txt
Câu hỏi 3. Làm thế nào để tạo thông tin đầu ra stat theo định dạng tùy chỉnh?
Để thực hiện, hãy sử dụng tùy chọn --format. Tùy chọn này yêu cầu bạn nhập một chuỗi định dạng hợp lệ và rất nhiều chuỗi định dạng như vậy có sẵn. Ví dụ, để truy cập các quyền/quyền hạn ở dạng có thể đọc được bằng con người, hãy sử dụng %A.Ví dụ:
Mã:
stat --format=%A test.txt
Tương tự, bạn có thể sử dụng %n cho tên tệp, %s cho kích thước và %U cho tên người dùng của chủ sở hữu tệp.
Câu hỏi 4. Tùy chọn --format khác với --printf như thế nào?
Về cơ bản, cả hai tùy chọn đều thực hiện cùng một chức năng. Sự khác biệt nằm ở cách tạo ra kết quả đầu ra. Trong khi --format xuất ra một dòng mới sau mỗi lần sử dụng, trong trường hợp --printf, không có dòng mới nào được thêm vào. Sau đây là cách trang hướng dẫn giải thích cả hai:
Mã:
-c --format=FORMAT
sử dụng FORMAT đã chỉ định thay vì mặc định; xuất ra một dòng?
mới sau mỗi lần sử dụng FORMAT
--printf=FORMAT
giống như --format, nhưng diễn giải các ký tự thoát dấu gạch chéo ngược và không out?
đặt một dòng mới bắt buộc theo sau; nếu bạn muốn có một dòng mới, hãy include
\n trong FORMAT
Câu hỏi 5. Làm thế nào để đảm bảo hủy tham chiếu stat trong trường hợp tệp đầu vào là một liên kết?
Cũng có một tùy chọn chuyên dụng cho việc này: -L. Vì vậy, nếu tệp đầu vào là một liên kết và bạn muốn stat theo sau khi lệnh chạy, hãy chạy nó theo cách sau:
Mã:
stat -L [filename]