मैं फ़ाइल की 'परिवर्तन' तिथि कैसे बदल सकता हूँ?


23

मैं 'परिवर्तन' तिथि कैसे बदल सकता हूँ?

$ touch -t 9901010000 test;stat test
  File: `test'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fe01h/65025d    Inode: 11279017    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    x)   Gid: ( 1000/    x)
Access: 1999-01-01 00:00:00.000000000 +0100
Modify: 1999-01-01 00:00:00.000000000 +0100
**Change: 2012-04-08 19:26:56.061614473 +0200**
 Birth: -

3
मनमानी करना ctimeआसान नहीं है। एसओ पर संबंधित सवाल
— jw013

जवाबों:


22

आप सामान्य साधनों से समय को नहीं बदल सकते। यह डिज़ाइन द्वारा है: जब आप किसी भी फ़ाइल के मेटाडेटा को बदलते हैं, तो धारा को हमेशा अपडेट किया जाता है, और अलग-अलग समय को लागू करने का कोई तरीका नहीं है। फ़ाइल का समय बदलने के लिए, आपको निम्न में से एक करने की आवश्यकता है:

  • सिस्टम समय को उस समय पर सेट करें जिसे आप थोपना चाहते हैं, फिर फ़ाइल को स्पर्श करें, फिर सिस्टम समय रीसेट करें।
  • CIME को बदलने के लिए इंटरफ़ेस जोड़ने के लिए कर्नेल को संशोधित करें।
  • डिस्क छवि को सीधे एक्सेस करें (जैसे कि debugfs) और डिस्क पर बिट्स को घुमाएं (फाइलसिस्टम माउंट होने पर इसे न करें)।

2
सिस्टम टाइम सेट करना और चामोद ने मेरे लिए काम किया। यहां देखें स्क्रिप्ट: stackoverflow.com/questions/16126992/…
— gaoithe

11

आपके पास संबंधित SO प्रश्न पर उत्तर दिया गया है, जो jw013 द्वारा एक्सटेक्स के लिए, अनमाउंट डिस्क पर है :

# Update ctime
debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1

# Drop vm cache so ctime update is reflected
echo 2 > /proc/sys/vm/drop_caches

4

किसी भी मेटाडेटा को बदलने पर फ़ाइल का समय अद्यतन किया जाता है।

$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py
$ stat -c %z x.py
2010-03-26 11:57:56.237068175 -0400
$ chown ignacio x.py
$ stat -c %z x.py
2012-04-08 15:31:33.682383575 -0400
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26  2010 x.py

लेकिन इसे अपडेट किए बिना इसे कैसे संशोधित किया जाए
— किसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.