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


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.