5 ví dụ về lệnh stat trên Centos / Ubuntu / Debian / Fedora

Lệnh stat là một tiện ích hữu ích để xem trạng thái của tệp hoặc hệ thống tệp. Nó thu thập thông tin như loại tệp, quyền truy cập dưới dạng bát phân và dễ đọc, chuỗi bảo mật SELinux, thời gian tạo tệp, truy cập lần cuối, sửa đổi dữ liệu lần cuối, thay đổi trạng thái lần cuối cùng cả trong định dạng dễ đọc và đơn vị giây kể từ Epoch cùng nhiều hơn nữa. Nó có tùy chọn để chỉ định định dạng tùy chỉnh thay vì định dạng mặc định, để hiển thị thông tin. Trong hướng dẫn dưới đây, bạn sẽ được xem năm ví dụ về lệnh stat dành cho người mới sử dụng Linux.

Kiểm tra trạng thái tệp

Cách dễ nhất để sử dụng lệnh "stat" là cung cấp cho nó một tệp tin như một tham số. Lệnh sau sẽ hiển thị thông tin về kích thước, khối, khối IO, loại tệp tin, giá trị inode, số liên kết và nhiều thông tin khác về tệp tin /var/log/syslog, như được hiển thị:

$ stat /var/log/syslog

File: '/var/log/syslog'
  Size: 26572      Blocks: 56         IO Block: 4096   regular file
Device: 80ah/2058d Inode: 8129076     Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
 Birth: -

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

Trong ví dụ trước đó, lệnh stat xử lý tệp tin đầu vào như một tệp tin thông thường. Tuy nhiên, để hiển thị trạng thái của hệ thống tệp tin thay vì trạng thái của tệp tin, sử dụng tùy chọn -f.

$ stat -f /var/log/syslog

File: "/var/log/syslog"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16012830   Available: 11700997
Inodes: Total: 21544960   Free: 20995459

Bạn cũng có thể cung cấp một thư mục/hệ thống tệp tin như một đối số như đã được hiển thị.

$ stat -f /

File: "/"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16056471   Available: 11744638
Inodes: Total: 21544960   Free: 21005263

Kích hoạt theo dõi các liên kết tượng trưng

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

$ stat -L /

 File: '/'
  Size: 4096       Blocks: 8          IO Block: 4096   directory
Device: 80ah/2058d Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
 Birth: -

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

Lệnh stat cũng cho phép bạn sử dụng định dạng cụ thể hoặc tùy chỉnh thay vì định dạng mặc định. Tùy chọn -c được sử dụng để chỉ định định dạng được sử dụng, nó in một dòng mới sau mỗi chuỗi định dạng.

Ngoài ra, bạn cũng có thể sử dụng tùy chọn --printf để cho phép giải thích các chuỗi trốn nháy ngược và tắt việc in một dòng mới ở cuối. Bạn cần sử dụng \n trong định dạng để in một dòng mới, ví dụ: 

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

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

  • %U - tên người dùng của chủ sở hữu
  • %G - tên nhóm của chủ sở hữu
  • %C - chuỗi bảo mật SELinux
  • %z - thời gian thay đổi trạng thái cuối cùng, đọc được bởi con người

Dưới đây là một ví dụ cho thấy cách sử dụng các chuỗi định dạng được chấp nhận cho hệ thống tệp tin.

$ stat --printf='%n\n%a\n%b\n' /

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

  • %n - hiển thị tên tệp tin
  • %a - in ra số khối trống có sẵn cho người dùng không phải là người quản trị hệ thống
  • %b - đầu ra tổng số khối dữ liệu trong hệ thống tệp tin

In ra thông tin dưới dạng ngắn gọn

Tùy chọn -t có thể được sử dụng để in thông tin dưới dạng ngắn gọn.

$ stat -t /var/log/syslog
/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096

Lưu ý cuối cùng, shell của bạn có thể có phiên bản riêng của lệnh stat, vì vậy hãy tham khảo tài liệu của shell để biết chi tiết về các tùy chọn mà nó hỗ trợ. Để xem tất cả các chuỗi định dạng đầu ra được chấp nhận, hãy tham khảo trang man của lệnh stat.

$ man stat 

Bên trên chính là 5 ví dụ về lệnh stat mà bạn có thể áp dụng vào trong công việc của mình. Tất cả đều thực tế và cụ thể, rất thích hợp cho người mới bắt đầu sử dụng hệ điều hành Linux.

Mọi người cũng tìm kiếm: stat ubuntu