Cách sử dụng lệnh stat trên Linux

Lệnh stat Linux cho bạn thấy nhiều chi tiết hơn lệnh ls. Bài viết sau đây sẽ chỉ cho bạn cách sử dụng lệnh stat trong Linux.

Giống như ls, lệnh stat có rất nhiều tùy chọn. Điều này làm cho nó trở thành một ứng cử viên tuyệt vời cho việc sử dụng các alias. Điều này làm cho việc sử dụng thuận tiện hơn nhiều và bạn không cần phải nhớ một bộ tùy chọn dòng lệnh phức tạp.

Lệnh stat cho biết những thông tin gì?

Hãy nhìn vào lệnh stat sau:

stat ana.h

Lệnh stat cho biết những thông tin gì?

Thông tin ta có được là:

  • File: Tên của file.
  • Size: Dung lượng của file tính theo byte.
  • Blocks: Số lượng khối hệ thống file được yêu cầu, để lưu trữ trên ổ cứng.
  • IO Block: Dung lượng của khối hệ thống file.
  • File type: Loại đối tượng mà siêu dữ liệu mô tả.
  • Device: Số thiết bị ở dạng thập lục phân và thập phân.
  • Inode: Số inode. Đó là số ID của inode này.
  • Links: Con số này cho biết có bao nhiêu liên kết cứng trỏ đến file này.
  • Access: Các quyền của file được hiển thị trong định dạng đọc, ghi, thực thi truyền thống.
  • Uid: ID người dùng và tên tài khoản của chủ sở hữu.
  • Gid: ID nhóm và tên tài khoản của chủ sở hữu.
  • Access: Đánh dấu thời gian truy cập.
  • Modify: Đánh dấu thời gian sửa đổi. Đây là thời điểm nội dung file được sửa đổi lần gần nhất.
  • Change: Đánh dấu thời gian thay đổi. Đây là thời gian các thuộc tính hoặc nội dung của file được thay đổi lần gần nhất.
  • Birth: Dành để hiển thị ngày tạo ban đầu của file, nhưng điều này không được thực hiện trong Linux.

Sử dụng stat với nhiều file

Để có báo cáo stat trên một số file cùng một lúc, hãy chuyển tên file cho stat trên dòng lệnh:

stat ana.h ana.o

Để sử dụng stat trên một tập hợp các file, hãy dùng pattern phù hợp. Dấu hỏi “?” đại diện cho bất kỳ ký tự đơn nào và dấu hoa thị “*” đại diện cho bất kỳ chuỗi ký tự nào.

Sử dụng stat với nhiều file

Sử dụng stat để báo cáo về hệ thống file

Lệnh stat có thể báo cáo về trạng thái của các hệ thống file, cũng như trạng thái của file. Tùy chọn -f (filesystem) yêu cầu stat báo cáo về hệ thống file mà file nằm trong đó. Lưu ý rằng bạn cũng có thể chuyển một thư mục như “/” đến stat thay vì tên file.

stat -f ana.c

Lệnh stat cho ta biết:

  • File: Tên của file.
  • ID: ID hệ thống file theo ký hiệu thập lục phân.
  • Namelen: Độ dài tối đa cho phép đối với tên file.
  • Loại: Loại hệ thống file.
  • Block size: Lượng dữ liệu yêu cầu đọc cho tốc độ truyền dữ liệu tối ưu.
  • Fundamental block size: Kích thước của mỗi block hệ thống file.
  • Blocks:
    • Total: Tổng số của tất cả các block trong hệ thống file.
    • Free: Số lượng block còn trống trong hệ thống file.
    • Available: Số lượng block miễn phí có sẵn cho người dùng thông thường (không phải root).
  • Inodes:
    • Total: Tổng số lượng các inode trong hệ thống file.
    • Free: Số lượng inode trống trong hệ thống file.

Liên kết tượng trưng

Nếu bạn sử dụng stat trên một file thực sự là một liên kết tượng trưng, ​​nó sẽ báo cáo về liên kết đó. Nếu bạn muốn stat báo cáo về file mà liên kết trỏ đến, hãy sử dụng tùy chọn -L (dereference). File code.c là một liên kết tượng trưng đến ana.c. Hãy xem xét nó khi không có tùy chọn -L:

stat code.c

Tên file hiển thị code.c trỏ đến (->) ana.c. Kích thước file chỉ có 11 byte. Không có block nào dành cho việc lưu trữ liên kết này. Loại file được liệt kê như một liên kết tượng trưng.

Hãy chạy lệnh một lần nữa và thêm tùy chọn -L:

stat -L code.c

Kết quả hiển thị chi tiết cho file được chỉ ra bởi liên kết tượng trưng. Nhưng lưu ý rằng tên file vẫn được cung cấp dưới dạng code.c. Đây là tên của liên kết, không phải file mục tiêu.

Báo cáo Terse

Tùy chọn -t (terse) khiến stat cung cấp một bản tóm tắt cô đọng:

stat -t ana.c

Không có manh mối nào được đưa ra. Để hiểu ý nghĩa của nó, cho đến khi ghi nhớ được trình tự trường, bạn cần tham chiếu chéo đầu ra này với đầu ra đầy đủ.

Định dạng đầu ra tùy chỉnh

Cách tốt hơn để có được một tập hợp dữ liệu khác nhau từ stat là sử dụng định dạng tùy chỉnh. Có một danh sách dài các token được gọi là chuỗi định dạng. Mỗi cái này đại diện cho một yếu tố dữ liệu. Chọn những cái bạn muốn có trong đầu ra và tạo một chuỗi định dạng. Khi bạn gọi stat và truyền chuỗi định dạng cho nó, đầu ra sẽ chỉ bao gồm các thành phần dữ liệu mà bạn yêu cầu.

Có hai tùy chọn chấp nhận chuỗi các chuỗi định dạng là --format--printf. Sự khác biệt giữa chúng là --printf diễn giải các chuỗi thoát kiểu C và nó không tự động thêm một ký tự dòng mới vào đầu ra.

Hãy tạo ra một chuỗi định dạng và chuyển nó sang stat. Trình tự định dạng sẽ sử dụng là %n cho tên file, %s cho dung lượng và %F cho loại file. Thêm chuỗi thoát \n vào cuối cho chuỗi để đảm bảo mỗi file được xử lý trên một dòng mới:

"File %n is %s bytes, and is a %F\n"

Ví dụ sẽ chuyển cái này sang stat bằng tùy chọn --printf.

stat --printf="File %n is %s bytes, and is a %F\n" code.c ana/ana.?

Báo cáo cho mỗi file được liệt kê trên một dòng mới.

Các định dạng tùy chỉnh cho phép bạn truy cập vào nhiều yếu tố dữ liệu hơn những gì được bao gồm trong đầu ra stat tiêu chuẩn.

Như có thể thấy, có rất nhiều phạm vi để trích xuất các yếu tố dữ liệu cụ thể mà bạn quan tâm.

Thứ Sáu, 03/01/2020 11:40
52 👨 326
0 Bình luận
Sắp xếp theo