Liên hệProfile
Danh mục

Mục Lục

    Cách sử dụng lệnh stat Linux chi tiết kèm các ví dụ

    Nguyễn Hưng

    Ngày đăng:

    05/02/2026

    Cập nhật lần cuối:

    05/02/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    05/02/2026

    Cập nhật lần cuối:

    05/02/2026

    Mục lục

    Lệnh stat trong Linux là một tiện ích dòng lệnh dùng để hiển thị thông tin chi tiết về một file hoặc thư mục, cung cấp các thuộc tính như kích thước file, quyền truy cập, quyền sở hữu, các dấu thời gian liên quan đến lần truy cập, chỉnh sửa và thay đổi metadata của file. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu chi tiết về lệnh stat Linux và xem xét năm ví dụ sử dụng lệnh này cho người mới bắt đầu.

    Những điểm chính

    • Định nghĩa lệnh stat linux: Hiểu rõ khái niệm, cú pháp và những thông tin chi tiết mà lệnh stat cung cấp về một file hoặc hệ thống file.
    • Cú pháp và tùy chọn: Nắm vững cấu trúc lệnh và các tham số quan trọng để tùy biến dữ liệu hiển thị theo đúng nhu cầu quản trị.
    • Giải thích thông số kết quả: Biết cách đọc và hiểu các trường dữ liệu kỹ thuật như số Inode, kích thước khối I/O và các loại quyền truy cập.
    • Các ví dụ thực tế: Nắm vững 5 cách sử dụng lệnh stat trong các tình huống thực tế, từ kiểm tra trạng thái file, hệ thống file, đến việc tùy chỉnh định dạng đầu ra.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các câu hỏi thường gặp, giúp bạn giải quyết các vấn đề cụ thể như kiểm tra nhiều file và lấy quyền truy cập dạng số.

    Lệnh stat linux là gì?

    Lệnh stat Linux là công cụ dùng để hiển thị thông tin chi tiết về trạng thái của một file, thư mục hoặc hệ thống file. Khi sử dụng lệnh này, bạn sẽ nhận được các thông số như: Loại file, quyền truy cập, chủ sở hữu, nhóm sở hữu, thời gian tạo/lần truy cập cuối/lần chỉnh sửa cuối, số inode, số liên kết, kích thước và nhiều thông tin khác liên quan đến đối tượng cần kiểm tra.

    Lệnh stat được dùng để hiển thị thông tin chi tiết về trạng thái của một file, thư mục hoặc hệ thống file.
    Lệnh stat được dùng để hiển thị thông tin chi tiết về trạng thái của một file, thư mục hoặc hệ thống file.

    Cú pháp và các tùy chọn lệnh stat phổ biến

    Cú pháp để thực thi lệnh stat rất đơn giản và tuân theo cấu trúc sau:

    stat [Tùy_Chọn] [Tên_File]

    Trong đó:

    • [Tùy_Chọn]: Các cờ để điều chỉnh định dạng đầu ra hoặc cách thức hoạt động của lệnh.
    • [Tên_File]: Đường dẫn đến tệp tin hoặc thư mục cần kiểm tra.

    Lệnh này chấp nhận một hoặc nhiều tên file làm đối số đầu vào, cho phép bạn kiểm tra đồng thời nhiều đối tượng.

    Người dùng có thể sử dụng các tùy chọn sau để tùy biến kết quả:

    Tùy chọnChức năng
    -L hoặc --dereferenceLệnh sẽ hiển thị thông tin của tệp gốc thay vì thông tin của symlink.
    -f hoặc --file-systemLệnh sẽ hiển thị trạng thái của filesystem nơi chứa tệp tin, thay vì trạng thái của chính tệp tin đó.
    -t hoặc --terseLệnh sẽ in kết quả dưới dạng tóm tắt, thuận tiện cho việc xử lý bằng các script tự động.
    -c hoặc --formatNgười dùng sử dụng tùy chọn này để định dạng kết quả đầu ra theo ý muốn, chỉ hiển thị các trường thông tin cụ thể.
    --helpHệ thống sẽ hiển thị hướng dẫn sử dụng và danh sách đầy đủ các tùy chọn.

    Ý nghĩa các thông tin trong kết quả

    Khi người dùng chạy lệnh mà không có bất kỳ tùy chọn nào, stat sẽ hiển thị một báo cáo chi tiết về file, bao gồm các trường thông tin quan trọng sau:

    • File: Tên của file đang được kiểm tra.
    • Size: Kích thước thực tế của file, tính bằng byte.
    • Blocks: Số lượng khối đĩa (allocated blocks) đã được cấp phát để lưu trữ file này.
    • IO Block: Kích thước của mỗi khối trên hệ thống tập tin, tính bằng byte.
    • File type: Loại của đối tượng (ví dụ: regular file cho file thông thường, directory cho thư mục, symbolic link cho liên kết tượng trưng).
    • Device: Mã định danh của thiết bị chứa chứa file, được hiển thị ở cả dạng thập lục phân (hex) và thập phân (decimal).
    • Inode: Số inode duy nhất đại diện cho tệp tin trên hệ thống.
    • Links: Số lượng liên kết cứng (hard links) đang trỏ đến inode này.
    • Access (Quyền): Quyền truy cập của file, được hiển thị ở cả dạng số (ví dụ: 0640) và dạng ký hiệu (-rw-r—–).
    • Uid (User ID): ID người dùng và tên tài khoản của chủ sở hữu file.
    • Gid (Group ID): ID nhóm và tên nhóm sở hữu file.
    • Context: Chuỗi ngữ cảnh bảo mật SELinux (nếu hệ thống có sử dụng SELinux).
    • Access (Thời gian): Thời điểm cuối cùng tệp tin được truy cập hoặc đọc nội dung.
    • Modify (Thời gian): Thời điểm cuối cùng nội dung của tệp tin bị thay đổi.
    • Change (Thời gian): Thời điểm cuối cùng siêu dữ liệu (metadata) của tệp tin bị thay đổi (ví dụ: thay đổi quyền hạn, đổi tên, hoặc di chuyển).
    • Birth (Thời gian): Thời điểm tệp tin được tạo ra. (Lưu ý: Trường này thường không được hỗ trợ trên hầu hết các hệ thống tập tin của Linux và có thể hiển thị là “0” hoặc “-“).

    Kiểm tra trạng thái file trên Linux

    Để sử dụng stat ở dạng cơ bản nhất, bạn chỉ cần cung cấp tên của file cần kiểm tra làm đối số. Lệnh dưới đây sẽ hiển thị kích thước, số khối, số khối I/O, loại file, giá trị inode, số liên kết và nhiều thông tin khác về file /var/log/syslog, như dưới đây:

    $ stat /var/log/syslog
    Kiểm tra trạng thái file trên Linux
    Kiểm tra trạng thái file trên Linux

    Kiểm tra trạng thái hệ thống file

    Để chuyển stat từ chế độ báo cáo thông tin file sang chế độ báo cáo thông tin hệ thống file, bạn cần sử dụng tùy chọn -f. Bạn có thể áp dụng lệnh này cho một file bất kỳ, và stat sẽ tự động hiển thị thông tin về hệ thống file chứa file đó.

    $ stat -f /var/log/syslog
    Kết quả kiểm tra trạng thái hệ thống file
    Kết quả kiểm tra trạng thái hệ thống file

    Bạn cũng có thể cung cấp một thư mục hoặc hệ thống file làm đối số như ví dụ dưới đây:

    $ stat -f /
    Kết quả hiển thị khi chạy lệnh stat -f /
    Kết quả hiển thị khi chạy lệnh stat -f /

    Khi được thực thi với tùy chọn -f, stat sẽ trả về một bộ thông tin hoàn toàn khác, tập trung vào các thuộc tính của hệ thống file, bao gồm:

    • File: Tên của file đã được dùng để truy vấn.
    • ID: ID của hệ thống file, hiển thị ở dạng thập lục phân.
    • Namelen: Độ dài tối đa (tính bằng ký tự) được phép cho tên file trên hệ thống file này.
    • Type: Loại của hệ thống file (ví dụ: ext2/ext3, xfs, btrfs).
    • Block size: Kích thước khối được khuyến nghị để đạt tốc độ truyền dữ liệu tối ưu khi đọc/ghi.
    • Fundamental block size: Kích thước cơ bản của mỗi khối trên hệ thống file.
    • Blocks (Thông tin về các khối dữ liệu):
      • Total: Tổng số khối dữ liệu có trong hệ thống file.
      • Free: Số lượng khối còn trống.
      • Available: Số lượng khối trống có sẵn cho người dùng thông thường (không phải người dùng root).
    • Inodes (Thông tin về các inode):
      • Total: Tổng số inode có trong hệ thống file.
      • Free: Số lượng inode còn trống, sẵn sàng để sử dụng cho các file và thư mục mới.

    Cho phép theo dõi liên kết tượng trưng

    Vì Linux hỗ trợ liên kết tượng trưng (Symbolic link) và liên kết cứng (hard link), một số file có thể có một hoặc nhiều liên kết, hoặc chúng có thể tồn tại trong một hệ thống file. Để cho phép lệnh stat theo dõi các liên kết, bạn sử dụng tùy chọn -L như sau:

    $ stat -L /
    Cho phép lệnh stat theo dõi các liên kết
    Cho phép lệnh stat theo dõi các liên kết

    Sử dụng định dạng tùy chỉnh để hiển thị thông tin

    Lệnh stat cho phép người dùng lọc và chỉ hiển thị những thông tin cần thiết thông qua tùy chọn -c hoặc --format. Điều này rất hữu ích khi viết các script tự động hóa.

    Các mã định dạng phổ biến:

    • %n: Tên tập tin.
    • %s: Kích thước tập tin (bytes).
    • %a: Quyền truy cập dạng số (octal).
    • %U: Tên người sở hữu (Owner).

    Ngoài ra, bạn cũng có thể sử dụng tùy chọn --printf, cho phép diễn giải các chuỗi thoát như dấu gạch chéo ngược (\) và sẽ không tự động in dòng mới ở cuối. Trong trường hợp này, bạn cần sử dụng \n trong định dạng nếu muốn in xuống dòng, ví dụ như sau:

    # stat --printf='%U\n%G\n%C\n%z\n' /

    Ý nghĩa của các chuỗi định dạng được sử dụng trong ví dụ trên:

    • %U: Tên người sở hữu file.
    • %G: Tên nhóm sở hữu file.
    • %C: Chuỗi ngữ cảnh bảo mật SELinux.
    • %z: Thời gian thay đổi trạng thái cuối cùng, ở định dạng dễ đọc.

    Dưới đây là một ví dụ minh họa việc sử dụng các chuỗi định dạng được hỗ trợ dành cho hệ thống file:

    test@computer:~$  stat --printf='%U\n%G\n%C\n%z\n' /
    root
    root
    stat: failed to get security context of '/': No data available
    ?
    2025-05-26 03:08:53.940011762 +0700 

    Chú thích:

    • Chủ sở hữu của thư mục / là user root.
    • Nhóm sở hữu của / là group root.
    • stat: failed to get security context of ‘/’: No data available: Lỗi này là do máy của mình chưa bật SElinux nên %C không thể lấy chuỗi cảnh báo bảo mật của SElinux.
    • 2025-05-26 03:08:53.940011762 +0700: Đây là thời gian chỉnh sửa lần cuối cùng của thư mục.

    In thông tin ở dạng rút gọn

    Ngoài việc tùy chỉnh định dạng, stat còn cung cấp một chế độ báo cáo đặc biệt gọi là “terse form” thông qua tùy chọn -t. Chế độ này in ra tất cả thông tin dưới dạng một dòng duy nhất, với các trường được phân tách bằng khoảng trắng. Để thực hiện, bạn nhập lệnh như sau (thay thế /var/log/syslog bằng tên file muốn rút gọn thông tin):

    $ stat -t /var/log/syslog
    In thông tin ở dạng rút gọn
    In thông tin ở dạng rút gọn

    Định dạng cô đọng này được thiết kế để dễ dàng cho việc phân tích cú pháp bởi các kịch bản hoặc các tiện ích khác. Tuy nhiên, để hiểu ý nghĩa của từng trường trong chuỗi đầu ra, bạn cần phải tham khảo tài liệu hướng dẫn (man stat) hoặc đối chiếu với kết quả của định dạng đầy đủ.

    $ man stat

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

    Có thể dùng lệnh stat để kiểm tra nhiều file cùng lúc không?

    Có . Bạn chỉ cần ghi các tên file cách nhau bởi dấu cách, ví dụ:
    stat file1.txt file2.txt file3.txt
    Lệnh này sẽ hiển thị thông tin của từng file lần lượt trong kết quả đầu ra.

    Làm sao để hiển thị quyền truy cập của file theo định dạng số (octal) bằng lệnh stat?

    Bạn có thể sử dụng định dạng tùy chỉnh, ví dụ:
    stat --format='%a' file.txt
    Kết quả trả về là quyền truy cập dạng số (vd: 644).

    Công dụng của trường “Links” trong kết quả lệnh stat là gì?

    Trường “Links” cho biết số liên kết cứng (hard link) trỏ tới inode của file. Một số liên kết lớn nghĩa là có nhiều tên file cùng trỏ tới cùng một vùng dữ liệu.

    Lệnh stat là một tiện ích dòng lệnh mạnh mẽ, được thiết kế để hiển thị thông tin trạng thái chi tiết của một hoặc nhiều file, liên kết, hoặc toàn bộ hệ thống file. Việc hiểu rõ và thành thạo lệnh stat sẽ giúp bạn nâng cao khả năng quản lý và phân tích hệ thống file của mình.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc
    Cách sử dụng fping để kiểm tra trạng thái của nhiều host cùng lúc

    fping là phiên bản mở rộng của lệnh ping, được dùng để kiểm tra trạng thái của nhiều địa chỉ IP hoặc domain cùng lúc nhanh chóng. Trong bài viết này, mình sẽ cung cấp một hướng dẫn toàn diện về fping, từ việc định nghĩa, cài đặt, cho đến cách khai thác các tính…

    05/02/2026

    Hướng dẫn sử dụng lệnh uptime Linux để kiểm tra thời gian hoạt động của hệ thống
    Hướng dẫn sử dụng lệnh uptime Linux để kiểm tra thời gian hoạt động của hệ thống

    Lệnh uptime Linux là một công cụ dòng lệnh giúp kiểm tra nhanh chóng thời gian hoạt động của máy chủ kể từ lần khởi động gần nhất, thường được sử dụng trong các công việc giám sát, quản lý và đánh giá hiệu suất hoạt động của máy chủ Linux. Trong bài viết này,…

    05/02/2026

    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết
    Hướng dẫn sử dụng lệnh rmdir để xóa thư mục trong Linux chi tiết

    Lệnh rmdir là một công cụ dòng lệnh cơ bản trong hệ điều hành Linux, được thiết kế chuyên biệt để giúp bạn gỡ bỏ các thư mục trống khỏi hệ thống một cách an toàn. rmdir sẽ kiểm tra và chỉ thực hiện lệnh xóa khi thư mục thực sự không chứa tệp tin…

    05/02/2026

    Hướng dẫn check swap space Linux nhanh chóng, chính xác
    Hướng dẫn check swap space Linux nhanh chóng, chính xác

    Swap space được hiểu là vùng đệm lưu trữ dữ liệu tạm thời trên ổ cứng khi dung lượng RAM thực tế không còn đủ để đáp ứng các tiến trình đang chạy. Việc hiểu rõ cơ chế này giúp bạn duy trì sự ổn định của máy chủ, tránh tình trạng treo hệ thống…

    05/02/2026

    linux

    lenh

    text