ทำความเข้าใจการประทับเวลาของไฟล์ Linux: mtime, ctime และ atime

ทำความเข้าใจการประทับเวลาของไฟล์ Linux: mtime, ctime และ atime

ระบบปฏิบัติการ Linux ติดตามการประทับเวลาสามครั้งสำหรับแต่ละไฟล์ในระบบของคุณ การประทับเวลาเหล่านี้ช่วยให้คุณค้นพบว่าไฟล์อัปเดตล่าสุดเมื่อใด แต่พวกเขาทั้งหมดหมายถึงอะไร? และคุณจะทราบเวลาเหล่านี้สำหรับไฟล์ได้อย่างไร มีความแตกต่างเมื่อพูดถึงไดเร็กทอรีหรือไม่?





ความเข้าใจเกี่ยวกับ atime, ctime และ mtime สามารถตอบคำถามเหล่านี้ได้ทั้งหมด นี่คือการประทับเวลาสามครั้งที่ระบบไฟล์ Unix ติดตาม หากคุณต้องการทราบรายละเอียดเกี่ยวกับสิ่งที่เปลี่ยนแปลงและเมื่อใด โปรดอ่านต่อ





การประทับเวลา Unix สามรายการคืออะไร

แต่ละไฟล์มีสามการประทับเวลาที่เกี่ยวข้อง Linux เก็บสิ่งเหล่านี้ไว้ใน รูปแบบเวลา Unix ซึ่งวัดวินาทีตั้งแต่ยุค การประทับเวลาสามครั้งมักเรียกว่า atime, ctime และ mtime





NS mtime เป็นสิ่งที่พบได้บ่อยที่สุดและมักมีประโยชน์มากที่สุด ย่อมาจาก แก้ไขเวลา . เป็นเวลาที่เนื้อหาของไฟล์ถูกเขียนลงดิสก์ครั้งล่าสุด

แตกต่างกันเล็กน้อยคือ ctime ซึ่งย่อมาจาก เปลี่ยนเวลา . การประทับเวลานี้ติดตามการเปลี่ยนแปลงข้อมูลเมตา เช่น ความเป็นเจ้าของและการอนุญาต ซึ่งรวมถึงการเปลี่ยนชื่อไฟล์ อย่างน้อยก็บนระบบปฏิบัติการ Linux สมัยใหม่ทั่วไป แต่ยังอัปเดตเมื่อเนื้อหาของไฟล์เปลี่ยนแปลง ดังนั้นจึงเป็นข้อมูลล่าสุดเสมอเหมือน mtime



การประทับเวลาที่สามคือ เวลา ซึ่งเก็บครั้งสุดท้ายที่ทุกคนเข้าถึงไฟล์

ทำไมเสียงฉันเบาจัง

การประทับเวลานำไปใช้กับไดเร็กทอรี

ไดเร็กทอรี Linux คือรายการไฟล์ในไดเร็กทอรีนั้น ดังนั้นการสร้างไฟล์ภายในไดเร็กทอรีจะอัปเดต mtime ของไดเร็กทอรีนั้น แสดงรายการไฟล์ในไดเร็กทอรีโดยใช้ ลส คำสั่ง เช่น อัปเดตเวลาการเข้าถึง และเช่นเดียวกับไฟล์ การเปลี่ยนการอนุญาตของไดเร็กทอรีหรือชื่อจะอัพเดต ctime





แล้วเวลาในการสร้างล่ะ?

อาจทำให้คุณประหลาดใจที่ได้เรียนรู้ว่า Linux ไม่ได้ติดตามเวลาในการสร้าง ตอนแรกคุณอาจสันนิษฐานว่า ctime หมายถึงเวลาสร้าง ในทำนองเดียวกัน คุณอาจคิดว่ามันเป็นสิ่งที่มีประโยชน์มากในการค้นหา

แอปพลิเคชั่นจำนวนมากบันทึกไฟล์ด้วยการสร้างตั้งแต่เริ่มต้นในแต่ละครั้ง สิ่งนี้จะทำให้การใช้เวลาสร้างทำให้เข้าใจผิด





วิธีดูการประทับเวลาต่างๆ

วิธีที่ง่ายที่สุดในการรับข้อมูลการประทับเวลาคือกับ NS ลส สั่งการ . รูปแบบยาวเริ่มต้นแสดงรายละเอียดสำหรับ 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

คุณสามารถแสดงเวลาแทนได้โดยใช้ปุ่ม -ยู ธง:

$ 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

บรรทัดสุดท้ายยืนยันว่า mtime ของไฟล์นี้แตกต่างจาก atime สุดท้าย ใช้ -ค ตั้งค่าสถานะเพื่อดู 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

ครั้งนี้ เรายืนยันว่าทั้งสามครั้งมีความชัดเจนและถูกต้อง: เราแก้ไข จากนั้นเข้าถึง จากนั้นจึงเปลี่ยนไฟล์ ตามลำดับ

ทางเลือกแทน ls คือ สถานะ สั่งการ. คำสั่งนี้แสดงรายละเอียดระดับต่ำจากไอโหนดของไฟล์ ทำให้ง่ายต่อการตรวจสอบทั้งสามครั้งในคราวเดียว นอกจากนี้ยังได้รับรอบปัญหาของไม่ได้สัญชาตญาณ -ยู ธง. นี่คือตัวอย่างผลลัพธ์สำหรับไฟล์เดียวกัน:

$ 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

วิธีอัปเดตการประทับเวลา

NS สัมผัส คำสั่งเปลี่ยนการแก้ไขและเวลาในการเข้าถึงไฟล์ นอกจากนี้ยังเป็นวิธีที่สะดวกในการสร้างไฟล์เปล่า ซึ่งจะทำหากไฟล์นั้นไม่มีอยู่แล้ว:

วิธีโหลดหนังลงไอแพด
touch tmp

โดยค่าเริ่มต้น มันจะตั้งค่า mtime และ atime เป็นเวลาปัจจุบัน คุณสามารถตั้งเวลาอื่นได้ด้วยปุ่ม -NS ธง:

touch -t 202103061200 tmp

คุณยังสามารถตั้งค่าเฉพาะ mtime หรือ atime ด้วยปุ่ม -NS และ -ถึง ธงตามลำดับ:

touch -t 202103061300 -m tmp

โปรดทราบว่า ctime จะอัปเดตเสมอเมื่อเราตั้งค่า atime หรือ mtime

วิธีค้นหาไฟล์ตามการประทับเวลา

NS หา คำสั่งเป็นอีกเครื่องมือหนึ่งที่ทำหน้าที่ในการประทับเวลา สามารถกรองไฟล์ตาม atime, ctime หรือ mtime ตัวอย่างเช่น:

find . -amin 15

จะค้นหาไฟล์ที่เข้าถึงเมื่อ 15 นาทีที่แล้วในขณะที่:

find . -mtime -2

จะค้นหาไฟล์ที่แก้ไขภายในสองวันที่ผ่านมา

Linux ติดตามทุกไฟล์สามครั้ง

การประทับเวลาของไฟล์ที่อ้างอิงบ่อยที่สุดคือ mtime นี่คือวันที่และเวลาที่แสดงรายการไฟล์ เป็นต้น แต่การประทับเวลาอีกสองรายการก็มีประโยชน์เช่นกัน โดยที่คุณเข้าใจว่ามันหมายถึงอะไร โดยเฉพาะอย่างยิ่ง จำไว้เสมอว่า ctime หมายถึง เปลี่ยน เวลาไม่ใช่ การสร้าง เวลา.

คำสั่งต่างๆ เช่น touch และ stat เป็นสมาชิกที่มีประโยชน์ของกล่องเครื่องมือบรรทัดคำสั่ง Linux คำสั่งเหล่านี้จะปรับปรุงเวิร์กโฟลว์ Linux ของคุณโดยให้คุณสร้างไฟล์ใหม่ได้อย่างรวดเร็ว

แบ่งปัน แบ่งปัน ทวีต อีเมล แผ่นโกงการอ้างอิงคำสั่ง Linux

เอกสารสรุปง่ายๆ นี้จะช่วยให้คุณคุ้นเคยกับเทอร์มินัลบรรทัดคำสั่งของ Linux ในเวลาไม่นาน

วิธีทำพิกเซลอาร์ตที่ดี
อ่านต่อไป หัวข้อที่เกี่ยวข้อง
  • ลินุกซ์
  • การจัดการไฟล์
  • Linux Distro
เกี่ยวกับผู้เขียน Bobby Jack(58 บทความเผยแพร่)

Bobby เป็นผู้ที่ชื่นชอบเทคโนโลยีซึ่งทำงานเป็นนักพัฒนาซอฟต์แวร์มาเกือบสองทศวรรษ เขาหลงใหลในการเล่นเกม ทำงานเป็นบรรณาธิการบทวิจารณ์ที่ Switch Player Magazine และหมกมุ่นอยู่กับทุกแง่มุมของการเผยแพร่ออนไลน์และการพัฒนาเว็บ

เพิ่มเติมจาก Bobby Jack

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก