Trong Mac OS X dường như có bốn dấu thời gian khác nhau được liên kết với một tệp. Những timestamps không phải luôn luôn được cập nhật một cách độc lập với nhau, nhưng người ta có thể có một số kiểm soát cá nhân với một chút chăm sóc và với việc sử dụng touch
, SetFile
và chown
(hoặc chmod
). Để thấy điều này, hãy thử nghiệm và tạo một tệp mới từ dấu nhắc lệnh #
:
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Ngày đầu tiên được liệt kê là thời gian truy cập cuối cùng ( atime
), lần thứ hai là lần sửa đổi cuối cùng ( mtime
), ngày thứ ba là thay đổi trạng thái cuối cùng ( ctime
), lần thứ tư là thời gian tạo tệp (sinh, Btime
), xem man lstat
.
Để sửa đổi thời gian truy cập ( atime
) thành thời gian đã chỉ định, hãy sử dụng:
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Để sửa đổi thời gian sửa đổi ( mtime
) và thời gian tạo tệp ( Btime
) thành thời gian đã chỉ định, hãy sử dụng:
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
Rõ ràng điều này cũng tự động cập nhật thời gian thay đổi trạng thái cuối cùng ( ctime
) thành thời gian hệ thống hiện tại!
Để chỉ sửa đổi thời gian tạo / sinh ( Btime
) thành một thời điểm nhất định, hãy sử dụng (như đề xuất của những người khác ở trên):
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
Để chỉ sửa đổi thời gian thay đổi trạng thái cuối cùng ( ctime
) thành thời gian sử dụng hệ thống hiện tại, ví dụ:
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
nơi username
là chủ sở hữu của tập tin (theo báo cáo của stat
hoặc ls -l
). Điều này không thay đổi quyền sở hữu của tệp, nhưng truy cập vào nút của tệp và ghi lại đây là lần thay đổi trạng thái cuối cùng. Thật không may, không thể chỉ định rõ ràng thời gian ở đây ngoài việc thay đổi thời gian của máy tính ...
Tóm lại, để có thể thay đổi bốn dấu thời gian một cách độc lập, người ta có thể sử dụng (theo thứ tự này cho 3 lần cuối):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [đặt ngày hệ thống]
chown username <file>
[hoàn nguyên về ngày hệ thống bình thường]
(Tất nhiên, việc đặt lại ngày hệ thống có thể không phải là hoạt động không có rủi ro, bạn đã được cảnh báo.)