ใน Mac OS X ดูเหมือนจะมีการประทับเวลาที่แตกต่างกันสี่ครั้งที่เกี่ยวข้องกับไฟล์ การประทับเวลานี้ไม่ได้มีการปรับปรุงอยู่เสมอเป็นอิสระจากกัน แต่หนึ่งสามารถมีบางการควบคุมบุคคลที่มีบิตของการดูแลและมีการใช้touch
, SetFile
และchown
(หรือchmod
) หากต้องการดูสิ่งนี้ให้ลองทดสอบและสร้างไฟล์ใหม่จากพรอมต์คำสั่ง#
:
# 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
วันแรกที่แสดงเป็นเวลาในการเข้าถึงที่ผ่านมา ( atime
) ที่สองคือการปรับเปลี่ยนเวลาที่ผ่านมา ( mtime
), สามคือการเปลี่ยนแปลงสถานะที่ผ่านมา ( ctime
) ที่สี่เป็นช่วงเวลาของการสร้างแฟ้ม (เกิดBtime
) man lstat
ให้ดู
ในการแก้ไขเวลาในการเข้าถึง ( atime
) เป็นเวลาที่กำหนดให้ใช้:
# 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
หากต้องการแก้ไขเวลาแก้ไข ( mtime
) และเวลาของการสร้างไฟล์ ( Btime
) เป็นเวลาที่ระบุให้ใช้:
# 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
เห็นได้ชัดว่านี่ยังอัปเดตเวลาของการเปลี่ยนสถานะล่าสุด ( ctime
) เป็นเวลาของระบบปัจจุบันโดยอัตโนมัติ!
หากต้องการแก้ไขเฉพาะเวลาที่สร้าง / เกิด ( Btime
) ตามเวลาที่กำหนดให้ใช้ (ตามที่คนอื่น ๆ เสนอไว้ด้านบน):
# 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
หากต้องการปรับเปลี่ยนเฉพาะเวลาที่มีการเปลี่ยนแปลงสถานะล่าสุด ( ctime
) เป็นเวลาที่ระบบปัจจุบันใช้เช่น:
# 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
username
เจ้าของไฟล์อยู่ที่ไหน(รายงานโดยstat
หรือls -l
) สิ่งนี้จะไม่เปลี่ยนความเป็นเจ้าของของไฟล์ แต่เข้าสู่ inode ของไฟล์และบันทึกสิ่งนี้เมื่อถึงเวลาที่การเปลี่ยนแปลงสถานะครั้งสุดท้าย น่าเสียดายที่ไม่สามารถระบุเวลาอย่างชัดเจนที่นี่นอกเหนือจากการเปลี่ยนเวลาของคอมพิวเตอร์ ...
โดยสรุปเพื่อให้สามารถเปลี่ยนสี่การประทับเวลาได้อย่างอิสระหนึ่งอาจใช้ (ตามลำดับนี้สำหรับ 3 ครั้งล่าสุด):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [ตั้งค่าระบบวันที่]
chown username <file>
[เปลี่ยนกลับเป็นวันที่ระบบปกติ]
(แน่นอนว่าการรีเซ็ตวันที่ของระบบอาจไม่ใช่การดำเนินการที่ปราศจากความเสี่ยงคุณได้รับคำเตือนแล้ว)