อัพเดต mtime ของไฟล์ด้วยตนเองใน UNIX


6

เป็นไปได้ไหมที่จะเปลี่ยนวันที่ของไฟล์บนระบบ UNIX ด้วยตนเอง

ถ้าเป็นเช่นนั้นฉันจะแก้ไขปัญหานี้ได้อย่างไร

ฉันจะทำสิ่งเดียวกันในหลายไฟล์พร้อมกันได้อย่างไร


1
คุณสามารถใช้ได้ touch file เพื่อให้มีวันที่ปัจจุบัน
fedorqui

อัปเดตคำถาม ฉันแค่ดูที่การทำให้ไฟล์ดูแก่กว่าพวกเขา

1
คุณสามารถปลอมมันเปลี่ยน datetime ของคุณ sudo date -s "sometime in the past"จากนั้น touch มันและกลับไปที่วันที่ปัจจุบัน
fedorqui

1
ลืมคำอธิบายของฉัน @BeniBela คำตอบนี้ง่ายขึ้น เรื่องน่ารู้เกี่ยวกับ -d ติดต่อ.
fedorqui

คำตอบ:


13

คุณสามารถใช้การสัมผัส เช่น::

touch -d '2007-01-31 8:46:26' file

หรือมักจะง่ายกว่าถ้าคุณมี file2 ซึ่งมี mtime อยู่แล้วคุณสามารถคัดลอกเวลาด้วย -r:

touch -r file2 file

นอกจากนี้ยังมีตัวเลือก -t พร้อมรูปแบบแปลก ๆ :

touch -t [[CC]YY]MMDDhhmm[.ss] file

1
+1 เนื่องจากนี่เป็นทางออกที่ดีสำหรับกล่อง Linux แต่ดูเหมือนว่า -d ไม่ใช่ตัวเลือกที่ถูกต้องบนเครื่อง OS X

เพิ่มตัวเลือกที่เก่ากว่าซึ่งดูเหมือนว่าจะมีอยู่บน แม็ค
BeniBela

1
-t คือ POSIX ดังนั้นจึงเป็นเดิมพันที่ดีที่จะได้รับการสนับสนุนจากยูนิเซฟปัจจุบัน

1

คุณสามารถใช้ได้

 touch -m -d '1 Jan 2006 12:34' test.txt

-m เปลี่ยนเวลาการแก้ไขเท่านั้น -d (- วันที่ = STRING) พร้อมวันที่ที่คุณต้องการใส่

สกัดจากคู่มือ:

DATE STRING
       The  --date=STRING is a mostly free format human readable date string such as "Sun, 29 Feb 2004 16:21:42 -0800" or "2004-02-29 16:21:42" or even "next Thursday".  A
       date string may contain items indicating calendar date, time of day, time zone, day of week, relative time, relative date, and numbers.  An empty  string  indicates
       the beginning of the day.  The date string format is more complex than is easily documented here but is fully described in the info documentation.

สำหรับข้อมูลเพิ่มเติมคุณสามารถอ่านคู่มือการใช้งานสัมผัส Running Man

ฉันหวังว่าจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.