stat là một tiện ích dòng lệnh hiển thị thông tin chi tiết về các tệp hoặc hệ thống tệp nhất định.

Bài viết này giải thích cách sử dụng lệnh stat.

Sử dụng lệnh stat

Cú pháp của lệnh stat như sau:

stat [OPTION]... FILE...

stat chấp nhận một hoặc nhiều FILE đầu vào và bao gồm một số tùy chọn kiểm soát hành vi lệnh và đầu ra.

Hãy xem ví dụ sau:

stat file.txt

Đầu ra sẽ giống như sau:

  File: file.txt
  Size: 4030        Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d  Inode: 13633379    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   linuxize)   Gid: ( 1000/   linuxize)
Access: 2019-11-06 09:52:17.991979701 +0100
Modify: 2019-11-06 09:52:17.971979713 +0100
Change: 2019-11-06 09:52:17.971979713 +0100
 Birth: -

Khi được gọi mà không có bất kỳ tùy chọn nào, stat sẽ hiển thị thông tin tệp sau:

  • Tệp – Tên của tệp.
  • Kích thước – Kích thước của tệp tính bằng byte.
  • Các khối – Số khối được cấp phát mà tệp có.
  • IO Block – Kích thước tính bằng byte của mọi khối.
  • Loại tệp – (ví dụ: tệp thông thường, thư mục, liên kết tượng trưng.)
  • Thiết bị – Số thiết bị ở dạng thập lục phân và thập phân.
  • Inode – Số Inode.
  • Liên kết – Số lượng liên kết cứng.
  • Access – Quyền truy cập tệp trong các phương thức số và ký hiệu.
  • Uid – ID người dùng và tên của chủ sở hữu .
  • Gid – ID nhóm và tên của chủ sở hữu.
  • Bối cảnh – Bối cảnh bảo mật SELinux.
  • Quyền truy cập – Lần cuối cùng tệp được truy cập.
  • Sửa đổi – Lần cuối cùng nội dung của tệp được sửa đổi.
  • Thay đổi – Lần cuối cùng thuộc tính hoặc nội dung của tệp được thay đổi.
  • Ngày sinh – Thời gian tạo tệp (không được hỗ trợ trong Linux).

Hiển thị thông tin về hệ thống tệp

Để nhận thông tin về hệ thống tệp nơi tệp nhất định cư trú, thay vì thông tin về chính tệp đó, hãy sử dụng tùy chọn -f, ( --file-system):

stat -f file.txt

Đầu ra của lệnh sẽ giống như sau:

  File: "package.json"
    ID: 8eb53097b4494d20 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 61271111   Free: 25395668   Available: 22265851
Inodes: Total: 15630336   Free: 13979610

Khi stat được gọi với tùy chọn -f, nó sẽ hiển thị thông tin sau:

  • Tệp – Tên của tệp.
  • ID – ID hệ thống tệp trong hex.
  • Namelen – Độ dài tối đa của tên tệp.
  • Kích thước khối cơ bản – Kích thước của mỗi khối trên hệ thống tệp.
  • Các khối:
    • Tổng số – Tổng số khối trong hệ thống tệp.
    • Miễn phí – Số khối miễn phí trong hệ thống tệp.
    • Có sẵn – Số lượng khối miễn phí có sẵn cho người dùng không phải root.
  • Inodes:
    • Tổng số – Tổng số inodes trong hệ thống tệp.
    • Miễn phí – Số inodes miễn phí trong hệ thống tệp.

Theo mặc định, statkhông tuân theo các liên kết tượng trưng . Nếu bạn chạy lệnh trên liên kết biểu tượng, đầu ra sẽ bao gồm thông tin về liên kết biểu tượng, không phải tệp mà nó trỏ tới:

stat /etc/resolv.conf
  File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  Size: 39          Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d  Inode: 8126659     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
 Birth: -

Để bỏ tham chiếu (theo dõi) liên kết biểu tượng và hiển thị thông tin về tệp mà liên kết biểu tượng trỏ tới, hãy sử dụng tùy chọn -L, ( --dereference):

stat -L /etc/resolv.conf
  File: /etc/resolv.conf
  Size: 715         Blocks: 8          IO Block: 4096   regular file
Device: 17h/23d Inode: 989         Links: 1
Access: (0644/-rw-r--r--)  Uid: (  101/systemd-resolve)   Gid: (  103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
 Birth: -

Tùy chỉnh đầu ra

Lệnh stat có hai tùy chọn cho phép bạn tùy chỉnh đầu ra theo yêu cầu của bạn: -c--format="format") và --printf="format".

Sự khác biệt giữa hai tùy chọn này là khi hai hoặc nhiều tệp được sử dụng làm phần mở --format sẽ tự động thêm một dòng mới sau mỗi đầu ra của toán hạng. Dấu gạch chéo ngược --printf của phiên dịch thoát ra.

Có nhiều chỉ thị định dạng cho tệp và hệ thống tệp có thể được sử dụng với --format và --printf.

Ví dụ, để chỉ xem loại tệp, bạn sẽ chạy:

stat --format="%F" /dev/null
character special file

Bạn có thể kết hợp bất kỳ số lượng chỉ thị định dạng nào và tùy chọn sử dụng dấu phân tách tùy chỉnh giữa chúng. Dấu phân tách có thể là một ký tự đơn hoặc một chuỗi:

stat --format="%n,%F" /dev/null
/dev/null,character special file

Để diễn giải các ký tự đặc biệt như dòng mới hoặc tab, hãy sử dụng tùy chọn --printf:

stat --printf='Name: %n\nPermissions: %a\n' /etc

\n in một dòng mới:

Name: /etc
Permissions: 755

stat cũng có thể hiển thị thông tin ở dạng ngắn gọn. Định dạng này hữu ích cho việc phân tích cú pháp của các tiện ích khác.

Gọi lệnh với tùy chọn -t--terse) để in đầu ra ở dạng ngắn gọn:

stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

Để có danh sách đầy đủ tất cả các chỉ thị định dạng cho tệp và loại hệ thống tệp man stat hoặc stat --help trong terminal của bạn.

Phần kết luận

Lệnh stat in thông tin về các tập tin nhất định và hệ thống tập tin.

Trong Linux, một số lệnh khác có thể hiển thị thông tin về các tệp nhất định, với tệp ls được sử dụng nhiều nhất, nhưng nó chỉ hiển thị một phần thông tin được cung cấp bởi lệnh stat.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments