Việc đổi tên có ảnh hưởng đến sửa đổi tập tin hoặc thời gian truy cập không? Có một danh sách ở đâu đó của những gì thay đổi thời gian?
Việc đổi tên có ảnh hưởng đến sửa đổi tập tin hoặc thời gian truy cập không? Có một danh sách ở đâu đó của những gì thay đổi thời gian?
Câu trả lời:
Đổi tên không cập nhật thời gian Thay đổi:
$ mkdir tmp
$ cd tmp
$ echo abc > a
$ stat a
File: `a'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000 / zelda Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
Birth: -
$ mv a b
$ stat b
File: `b'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ zelda) Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
Birth: -
Thời gian truy cập được cập nhật khi đọc nội dung của tệp. Sửa đổi khi bạn thực sự cập nhật tệp (mở để sửa đổi là không đủ để thay đổi Thời gian sửa đổi).
cp
và mv
, và vi
để chỉnh sửa. Các trình soạn thảo khác hoặc máy tính để bàn của bạn có thể xử lý tác vụ khác nhau và có thêm dấu thời gian được cập nhật.
mv
Một sửa đổi ảnh hưởng đến thời gian của tệp là thay đổi dữ liệu của tệp: ghi một số lượng byte khác nhau hoặc cắt ngắn kết thúc việc sửa đổi tệp. Tạo một tập tin cũng đặt thời gian của nó đến ngày hiện tại. Chỉ mở một tệp để viết không ảnh hưởng đến mtime, giả sử tệp không được tạo hoặc cắt ngắn.
Đọc từ một tệp (nếu số byte khác nhau được đọc) hoặc thực thi một tệp sẽ đặt thời gian hiện tại của nó. Chỉ mở một tệp để đọc không bao giờ ảnh hưởng đến atime. Trên Linux, điều này hiện bị tắt theo mặc định trong hầu hết các trường hợp; các atime
gắn kết tùy chọn khôi phục atime cập nhật, trong khi noatime
gắn kết tùy chọn vô hiệu hóa chúng hoàn toàn.
Các chương trình có thể thay đổi thời gian và thời gian của một tập tin; lệnh cơ bản để làm điều này là touch
. Một số chương trình sao chép tệp đặt bản sao về cùng thời gian với bản gốc, ví dụ cp -p
hoặc rsync -t
.
Thay đổi ảnh hưởng đến thời gian của tệp là thay đổi siêu dữ liệu của tệp: quyền, chủ sở hữu, thời gian, số lượng liên kết, v.v. Đổi tên tệp cũng cập nhật thời gian của tệp. Thay đổi dữ liệu tệp cũng ảnh hưởng đến thời gian, nhưng đọc từ tệp không thay đổi thời gian ngay cả khi thay đổi thời gian. Không thể thay đổi thời gian theo bất kỳ cách nào ngoài việc đặt nó thành thời gian hiện tại (ngay cả root bị hạn chế, nhưng root có thể gián tiếp đặt ctime bằng cách thay đổi thời gian hệ thống trước tiên hoặc bằng cách truy cập trực tiếp vào phân vùng chứa hệ thống tệp).