Cách sử dụng lệnh stat trên Linux
Fatmawati Achmad Zaenuri / Shutterstock.com
Hệ điều hành Linux stat
lệnh hiển thị cho bạn chi tiết hơn nhiều so với ls
làm. Hãy nhìn vào phía sau bức màn với tiện ích có thể cấu hình và thông tin này. Chúng tôi sẽ hướng dẫn bạn cách sử dụng nó.
stat đưa bạn đến hậu trường
ls
lệnh rất tuyệt với những gì nó làm — và nó làm được rất nhiều thứ — nhưng với Linux, dường như luôn có cách để đi sâu hơn và xem những gì nằm bên dưới bề mặt. Và thông thường, nó không chỉ là trường hợp nâng mép thảm. Bạn có thể xé các tấm ván sàn và sau đó đào một cái hố. Bạn có thể bóc vỏ Linux như một củ hành tây.
CÓ LIÊN QUAN 10 lệnh Linux cơ bản cho người mới bắt đầu
ls
sẽ hiển thị cho bạn rất nhiều thông tin về tệp, chẳng hạn như quyền nào được thiết lập trên tệp và kích thước của tệp, và cho dù đó là một tệp hay một liên kết tượng trưng . Để hiển thị thông tin này ls
đọc nó từ một cấu trúc hệ thống tệp được gọi là inode .
Mọi tệp và thư mục đều có inode. Inode giữ siêu dữ liệu về tệp , chẳng hạn như hệ thống tệp nào chặn nó chiếm và các dấu ngày tháng được liên kết với tệp. Inode giống như một thẻ thư viện cho tệp. Nhưng ls
sẽ chỉ cho bạn thấy một số thông tin. Để xem mọi thứ, chúng ta cần sử dụng dấu stat
yêu cầu.
Thích ls
, dấu stat
lệnh 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 sáng giá cho việc sử dụng bí danh. Khi bạn đã phát hiện ra một tập hợp các tùy chọn cụ thể tạo nên stat
cung cấp cho bạn đầu ra mà bạn muốn, bọc nó trong một bí danh hoặc hàm shell . Điều này làm cho việc sử dụng trở nên thuận tiện hơn nhiều và bạn không phải nhớ một loạt các tùy chọn dòng lệnh phức tạp.
CÓ LIÊN QUAN: Cách sử dụng lệnh ls để liệt kê tệp và thư mục trên Linux
So sánh nhanh
Hãy sử dụng ls
để cung cấp cho chúng tôi một danh sách dài (tùy chọn -l
) với kích thước tệp mà con người có thể đọc được (-h
tùy chọn):
ana.c
Quảng cáo
Từ trái sang phải, thông tin mà ls cung cấp là:
- Ký tự đầu tiên là dấu gạch ngang - và điều này cho chúng ta biết tệp là tệp thông thường chứ không phải là ổ cắm, liên kết biểu tượng hay một loại đối tượng khác.
- Chủ sở hữu, nhóm và các quyền khác được liệt kê ở định dạng bát phân .
- Số lượng liên kết cứng trỏ đến tệp này. Trong trường hợp này, và trong hầu hết các trường hợp, nó sẽ là một.
- Chủ sở hữu tệp là dave.
- Chủ nhóm thật tuyệt.
- Kích thước tệp là 802 byte.
- Tệp được sửa đổi lần cuối vào Thứ Sáu, ngày 13 tháng 12 năm 2015.
- Tên tệp là
stat
.
Chúng ta hãy xem xét với stat
:
stat
Thông tin chúng tôi nhận được từ stat
Là:
- & rsaquo; Mọi điều bạn từng muốn biết về inodes trên Linux
- & rsaquo; 5 trang web Mọi người dùng Linux nên đánh dấu
- & rsaquo; Thứ Hai điện tử năm 2021: Ưu đãi công nghệ tốt nhất
- & rsaquo; Thứ Hai điện tử năm 2021: Ưu đãi tốt nhất của Apple
- & rsaquo; Cách tìm Spotify của bạn được gói vào năm 2021
- & rsaquo; Thư mục Máy tính là 40: Ngôi sao Xerox đã tạo ra màn hình như thế nào
- & rsaquo; Hàm so với Công thức trong Microsoft Excel: Sự khác biệt là gì?
rwx
trên dòng lệnh, nhưng Có thể khác nếu chúng ta đang xem xét một liên kết tượng trưng. relatime
trên một thư mục, số này đại diện cho số lượng tệp trong thư mục, bao gồm cả. mục nhập cho thư mục hiện tại và mục nhập .. cho thư mục mẹ. -0500
(đọc, ghi, thực thi các định dạng). chmod
, cố gắng tối ưu hóa yêu cầu ghi ổ cứng để cập nhật thời gian truy cập . Nói một cách đơn giản, thời gian truy cập được cập nhật nếu nó cũ hơn thời gian sửa đổi. Hiểu về Dấu thời gian
Dấu thời gian nhạy cảm với múi giờ. ana.c
ở cuối mỗi dòng cho thấy rằng tệp này đã được tạo trên một máy tính trong Giờ phối hợp quốc tế (UTC) múi giờ trước 5 giờ so với múi giờ của máy tính hiện tại. Vì vậy, máy tính này chậm hơn 5 giờ so với máy tính đã tạo ra tệp này. Trên thực tế, tệp được tạo trên máy tính có múi giờ của Vương quốc Anh và chúng tôi đang xem tệp tại đây trên máy tính theo múi giờ chuẩn miền Đông Hoa Kỳ.
Việc sửa đổi và thay đổi dấu thời gian có thể gây nhầm lẫn bởi vì đối với những người chưa quen, tên của chúng nghe như thể chúng có cùng nghĩa.
Hãy sử dụng stat
để sửa đổi các quyền đối với tệp có tên stat
. Chúng tôi sẽ làm cho nó có thể được viết bởi tất cả mọi người. Điều này sẽ không ảnh hưởng đến nội dung của tệp, nhưng nó sẽ ảnh hưởng đến các thuộc tính của tệp.
stat
Và sau đó chúng tôi sẽ sử dụng stat
để xem các dấu thời gian:
stat
Quảng cáo
Dấu thời gian thay đổi đã được cập nhật, nhưng dấu thời gian được sửa đổi thì không.
Các sửa đổi dấu thời gian sẽ chỉ được cập nhật nếu nội dung của tệp được thay đổi. Các biến đổi dấu thời gian được cập nhật cho cả thay đổi nội dung và thay đổi thuộc tính.
Sử dụng thống kê với nhiều tệp
Để có báo cáo thống kê trên nhiều tệp cùng một lúc, hãy chuyển tên tệp thành -f
trên dòng lệnh:
stat
Để sử dụng stat
trên một tập hợp các tệp, sử dụng đối sánh mẫu. Dấu chấm 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. Chúng ta có thể nói stat
để báo cáo về bất kỳ tệp nào được gọi là ana với phần mở rộng là một chữ cái, bằng lệnh sau:
stat
Sử dụng thống kê để báo cáo về hệ thống tệp
stat
có thể báo cáo về trạng thái của hệ thống tệp, cũng như trạng thái của tệp. -L
(hệ thống tập tin) tùy chọn cho biết code.c
để báo cáo về hệ thống tệp có tệp đó. Lưu ý rằng chúng ta cũng có thể chuyển một thư mục như / sang ana.c
thay vì tên tệp.
-L
Thông tin code.c
cho chúng tôi là:
Các khối:
Inodes:
Các liên kết tượng trưng cho hội nghị
Nếu bạn sử dụng ->
trên một tệp 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 ana.c
để báo cáo về tệp mà liên kết trỏ đến, hãy sử dụng dấu -L
(dereference) tùy chọn. Tệp code.c
là một liên kết tượng trưng đến stat
. Hãy nhìn vào nó mà không có dấu -t
lựa chọn:
stat
Quảng cáo
Tên tệp hiển thị stat
trỏ tới (stat
) stat
. Kích thước tệp chỉ là 11 byte. Không có khối nào dành để lưu trữ liên kết này. Loại tệp được liệt kê dưới dạng liên kết tượng trưng.
Rõ ràng, chúng tôi không xem xét tệp thực tế ở đây. Hãy làm điều đó một lần nữa và thêm dấu rwx
lựa chọn:
--format
Điều này hiện đang hiển thị chi tiết tệp cho tệp được trỏ đến bởi liên kết tượng trưng. Nhưng lưu ý rằng tên tệp vẫn được cung cấp là --printf
. Đây là tên của liên kết, không phải tệp đích. Điều này xảy ra vì đây là tên mà chúng ta đã chuyển cho --printf
trên dòng lệnh.
Báo cáo Terse
(terse) tùy chọn gây ra
để cung cấp một bản tóm tắt cô đọng:
stat
Không có manh mối nào được đưa ra. Để hiểu rõ điều này — cho đến khi bạn ghi nhớ chuỗi trường — bạn cần tham chiếu chéo kết quả đầu ra này thành %n
đầy đủ | đầu ra.
Định dạng đầu ra tùy chỉnh
Cách tốt hơn để lấy tập dữ liệu khác từ %s
là sử dụng một định dạng tùy chỉnh. Có một danh sách dài các mã thông báo được gọi là chuỗi định dạng. Mỗi cái này đại diện cho một phần tử dữ liệu. Chọn những cái bạn muốn đưa vào đầu ra và tạo một chuỗi định dạng. Khi chúng tôi gọi %F
và chuyển chuỗi định dạng cho nó, đầu ra sẽ chỉ bao gồm các phần tử dữ liệu mà chúng tôi yêu cầu.
Có nhiều bộ trình tự định dạng khác nhau cho tệp và hệ thống tệp. Danh sách cho các tệp là:
). Kỷ nguyên là Unix Epoch , diễn ra vào ngày 1970-01-01 00:00:00 +0000 (UTC).
Đối với hệ thống tệp, trình tự định dạng là:
Có hai tùy chọn chấp nhận các chuỗi trình tự định dạng. Đây là stat
và --printf
. Sự khác biệt giữa chúng là stat
thông dịch viên Trình tự thoát kiểu C chẳng hạn như newline code.c
và tab ana.?
và nó không tự động thêm ký tự dòng mới vào đầu ra của nó.
Hãy tạo một chuỗi định dạng và chuyển nó vào =
. Các trình tự định dạng sẽ được sử dụng là --printf
cho tên tệp, stat
cho kích thước của tệp và
ls -lh ana.hcho loại tệp. Chúng tôi sẽ thêm
stat ana.hthoát chuỗi đến cuối chuỗi để đảm bảo mỗi tệp được xử lý trên một dòng mới. Chuỗi định dạng của chúng tôi trông như thế này:
chmod +w ana.c
Chúng tôi sẽ chuyển điều này cho
stat ana.cbằng cách sử dụng
stat ana.h ana.olựa chọn. Chúng tôi sẽ hỏi
stat ana.?để báo cáo trên tệp có tên
stat -f ana.cvà một tập hợp các tệp phù hợp với
stat code.c. Đây là lệnh đầy đủ. Lưu ý dấu bằng
stat -L code.cgiữa
stat -t ana.cvà chuỗi định dạng:
'File %n is %s bytes, and is a %F '
Báo cáo cho mỗi tệp được liệt kê trên một dòng mới, đó là những gì chúng tôi yêu cầu. Tên tệp, kích thước tệp và loại tệp được cung cấp cho chúng tôi.
Quảng cáoCác định dạng tùy chỉnh cung cấp cho bạn quyền truy cập vào nhiều phần tử dữ liệu hơn những phần tử được bao gồm trong tiêu chuẩn
stat --printf='File %n is %s bytes, and is a %F ' code.c ana/ana.?đầu ra.
Kiểm soát hạt mịn
Như bạn có thể thấy, có rất nhiều phạm vi để trích xuất các phần tử dữ liệu cụ thể mà bạn quan tâm. Bạn có thể cũng có thể hiểu lý do tại sao chúng tôi khuyên bạn nên sử dụng bí danh cho các câu thần chú dài hơn và phức tạp hơn.
CÓ LIÊN QUAN: Máy tính xách tay Linux tốt nhất cho nhà phát triển và người đam mê
ĐỌC TIẾPDave McKay lần đầu tiên sử dụng máy tính khi băng giấy đục lỗ đang thịnh hành, và anh ấy đã lập trình kể từ đó. Sau hơn 30 năm trong ngành CNTT, anh hiện là một nhà báo công nghệ toàn thời gian. Trong sự nghiệp của mình, anh ấy đã làm việc với tư cách là một lập trình viên tự do, quản lý nhóm phát triển phần mềm quốc tế, quản lý dự án dịch vụ CNTT và gần đây nhất là Nhân viên bảo vệ dữ liệu. Bài viết của anh đã được xuất bản bởi howtogeek.com, cloudavvyit.com, itenterpriser.com và opensource.com. Dave là một nhà truyền giáo Linux và người ủng hộ nguồn mở.
Đọc đầy đủ tiểu sử