Tìm hiểu Dấu thời gian tệp Linux: mtime, ctime và atime

Tìm hiểu Dấu thời gian tệp Linux: mtime, ctime và atime

Hệ điều hành Linux theo dõi ba dấu thời gian cho mỗi tệp trên hệ thống của bạn. Các dấu thời gian này cho phép bạn khám phá thời điểm tệp được cập nhật lần cuối. Nhưng tất cả chúng có nghĩa là gì? Và làm thế nào để bạn tìm ra những thời điểm này cho một tệp? Có sự khác biệt khi nói đến thư mục?





Hiểu biết về atime, ctime và mtime có thể trả lời tất cả các câu hỏi này. Đây là ba dấu thời gian mà hệ thống tệp Unix theo dõi. Nếu bạn cần tìm hiểu chi tiết về những gì đã thay đổi và khi nào, hãy đọc tiếp.





Ba dấu thời gian Unix là gì?

Mỗi tệp có ba dấu thời gian được liên kết với nó. Linux lưu trữ những thứ này trong Định dạng thời gian Unix đo giây kể từ kỷ nguyên. Ba dấu thời gian thường được gọi là atime, ctime và mtime.





Các mtime là phổ biến nhất và thường hữu ích nhất. Nó là viết tắt của thời gian sửa đổi . Đây là thời điểm mà nội dung của tệp được ghi lần cuối vào đĩa.

Hơi khác một chút là ctime Viết tắt của thay đổi thời gian . Dấu thời gian này theo dõi các thay đổi về siêu dữ liệu, chẳng hạn như quyền sở hữu và quyền. Nó bao gồm việc đổi tên tệp — ít nhất, trên hệ điều hành Linux hiện đại điển hình. Nhưng nó cũng cập nhật khi nội dung của tệp thay đổi, vì vậy, nó luôn được cập nhật theo mtime.



Dấu thời gian thứ ba là một thời gian , nơi lưu trữ lần cuối cùng bất kỳ ai truy cập tệp.

cách kiểm tra phần mềm độc hại trên iphone

Cách Áp dụng Dấu thời gian cho Thư mục

Về cơ bản, thư mục Linux là một danh sách các tệp trong thư mục đó. Vì vậy, việc tạo tệp bên trong thư mục sẽ cập nhật mtime của thư mục đó. Liệt kê các tệp trong thư mục, sử dụng ls ví dụ: cập nhật thời gian truy cập của nó. Và, cũng như với tệp, việc thay đổi quyền hoặc tên của thư mục sẽ cập nhật thời gian của nó.





Còn về thời gian sáng tạo?

Bạn có thể ngạc nhiên khi biết rằng Linux đơn giản là không theo dõi thời gian tạo. Ban đầu bạn có thể cho rằng ctime là viết tắt của thời gian sáng tạo. Tương tự, bạn có thể nghĩ về nó như một thứ rất hữu ích để có thể tìm hiểu.

Nhiều ứng dụng lưu tệp bằng cách tạo chúng từ đầu mỗi lần. Điều này sẽ làm cho việc sử dụng thời gian tạo bị sai lệch.





Cách xem các Dấu thời gian khác nhau

Cách đơn giản nhất để nhận thông tin dấu thời gian là NS ls chỉ huy . Định dạng dài mặc định hiển thị chi tiết cho mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Thay vào đó, bạn có thể hiển thị thời gian bằng cách sử dụng -u lá cờ:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Dòng cuối cùng xác nhận rằng mtime của tệp này khác với thời gian. Cuối cùng, sử dụng -NS cờ để xem ctime:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Lần này, chúng tôi xác nhận rằng cả ba lần đều khác biệt và chính xác: chúng tôi đã sửa đổi, sau đó truy cập, sau đó thay đổi tệp, theo thứ tự đó.

Một thay thế cho ls là tiểu bang chỉ huy. Lệnh này hiển thị chi tiết cấp thấp từ inode của tệp. Nó giúp bạn dễ dàng kiểm tra cả ba lần cùng một lúc. Nó cũng xoay quanh vấn đề không trực quan -u lá cờ. Đây là ví dụ về kết quả đầu ra cho cùng một tệp:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Cách cập nhật Dấu thời gian

Các chạm vào lệnh thay đổi thời gian sửa đổi và truy cập của một tệp. Đây cũng là một cách thuận tiện để tạo tệp trống, cách này sẽ thực hiện nếu tệp chưa tồn tại:

tăng tốc thời gian khởi động windows 10
touch tmp

Theo mặc định, nó sẽ đặt mtime và atime thành thời gian hiện tại. Bạn có thể đặt thời gian khác với -NS lá cờ:

touch -t 202103061200 tmp

Bạn cũng có thể chỉ đặt mtime hoặc atime với -NS-đến cờ tương ứng:

touch -t 202103061300 -m tmp

Lưu ý rằng ctime luôn cập nhật khi chúng ta đặt atime hoặc mtime.

Cách tìm tệp dựa trên dấu thời gian

Các tìm thấy lệnh là một công cụ khác hoạt động trên dấu thời gian. Nó có thể lọc các tệp dựa trên atime, ctime hoặc mtime. Ví dụ:

find . -amin 15

sẽ tìm thấy các tệp được truy cập chính xác 15 phút trước, trong khi:

find . -mtime -2

sẽ tìm thấy các tệp được sửa đổi trong vòng hai ngày qua.

Linux theo dõi mỗi tệp ba lần

Dấu thời gian tệp được tham chiếu phổ biến nhất là mtime. Ví dụ: đây là ngày và giờ mà danh sách tệp hiển thị. Nhưng hai dấu thời gian khác cũng có thể hữu ích, miễn là bạn hiểu chúng đang đề cập đến điều gì. Đặc biệt, hãy luôn nhớ rằng ctime đại diện cho thay đổi thời gian, không sự sáng tạo thời gian.

Các lệnh như touch và stat là những thành viên hữu ích của hộp công cụ dòng lệnh Linux. Các lệnh này sẽ nâng cao quy trình làm việc Linux của bạn bằng cách cho phép bạn tạo các tệp mới một cách nhanh chóng.

Đăng lại Đăng lại tiếng riu ríu E-mail Bảng lừa đảo tham chiếu lệnh Linux

Bảng gian lận đơn giản này sẽ giúp bạn sử dụng thoải mái với terminal dòng lệnh Linux ngay lập tức.

cách truy cập chế độ dọc trên iphone 7
Đọc tiếp Chủ đề liên quan
  • Linux
  • Quản lý tệp
  • Linux Distro
Giới thiệu về tác giả Bobby Jack(58 bài báo đã xuất bản)

Bobby là một người đam mê công nghệ, người đã làm việc như một nhà phát triển phần mềm trong gần hai thập kỷ. Anh ấy đam mê chơi game, làm Biên tập viên đánh giá tại Tạp chí Switch Player và đắm mình trong tất cả các khía cạnh của xuất bản trực tuyến và phát triển web.

Xem thêm từ Bobby Jack

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký