जब तक आप फ़ाइल (या रूट) के स्वामी हैं, तब तक आप touch
कमांड का उपयोग करके फ़ाइल के संशोधन समय को बदल सकते हैं :
touch filename
डिफ़ॉल्ट रूप से यह फ़ाइल के संशोधन समय को वर्तमान समय में सेट कर देगा, लेकिन कई झंडे होते हैं, जैसे कि -d
किसी विशेष तिथि को चुनने के लिए ध्वज। उदाहरण के लिए, वर्तमान से दो घंटे पहले संशोधित की जा रही फ़ाइल को सेट करने के लिए, आप निम्नलिखित का उपयोग कर सकते हैं:
touch -d "2 hours ago" filename
यदि आप इसके बजाय मौजूदा संशोधन समय के सापेक्ष फ़ाइल को संशोधित करना चाहते हैं, तो निम्नलिखित को यह करना चाहिए:
touch -d "$(date -R -r filename) - 2 hours" filename
यदि आप बड़ी संख्या में फ़ाइलों को संशोधित करना चाहते हैं, तो आप निम्नलिखित का उपयोग कर सकते हैं:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
आप find
केवल उन फाइलों का चयन करने के लिए तर्क बदल सकते हैं, जिनमें आप रुचि रखते हैं। यदि आप वर्तमान समय के सापेक्ष केवल फाइल संशोधन समय को अद्यतन करना चाहते हैं, तो आप इसे सरल कर सकते हैं:
find DIRECTORY -exec touch -d "2 hours ago" {} +
यह प्रपत्र फ़ाइल समय सापेक्ष संस्करण के साथ संभव नहीं है क्योंकि यह तर्क बनाने के लिए शेल का उपयोग करता है touch
।
जहां तक सृजन का समय है, अधिकांश लिनक्स फ़ाइल सिस्टम इस मान का ट्रैक नहीं रखते हैं। वहाँ एक है ctime
फ़ाइलों के साथ जुड़े, लेकिन यह पटरियों जब फ़ाइल मेटाडाटा पिछले बदल गया था। यदि फ़ाइल की अनुमतियाँ कभी नहीं बदली गई हैं, तो हो सकता है कि यह निर्माण का समय हो, लेकिन यह एक संयोग है। स्पष्ट रूप से फ़ाइल संशोधन समय को मेटाडेटा परिवर्तन के रूप में बदलता है, इसलिए अद्यतन करने का दुष्प्रभाव भी होगा ctime
।
touch -d "2 hours ago" /path/*.txt
उदाहरण के लिए।