शेर में फ़ाइल के निर्माण (st_birthtime) दिनांक / समय को कैसे बदलें? [डुप्लिकेट]


10

touch(1)केवल संशोधन और पहुंच के समय को बदल सकते हैं , लेकिन निर्माण समय के लिए कोई विकल्प नहीं है । यह काम नहीं करता है, कम से कम शेर पर नहीं।

तो मैं निर्माण समय को कैसे बदलूं , इसे जन्मकाल भी कहा जाता है fstat(2)? इसमें कोई संबंधित कॉल utimes(2)नहीं है और इसके लिए कोई कमांड लाइन टूल नहीं है।

मुझे पता है कि मैं फ़ाइल को एक नई फ़ाइल में कॉपी कर सकता हूं, जिसे तब जन्म के रूप में वर्तमान समय मिलता है (और फिर मूल को हटा दें), लेकिन निश्चित रूप से एक बेहतर तरीका होना चाहिए?


1
touch -t yyyymmddhhmm $fileलगता है कि निर्माण तिथि बदल जाएगी, लेकिन केवल अगर यह मूल निर्माण तिथि से पहले है।
लैरी

अच्छी बात है, @Lri - जो वास्तव में समझ में आता है, क्योंकि उस अपडेट के बाद mime और atime और फ़ाइल को एक्सेस या संशोधित नहीं किया जा सकता, इसे बनाने से पहले। लेकिन यह मुझे एक नया निर्माण समय निर्धारित नहीं करने देता।
Ingmar Hupp

क्या आप इसे कमांड लाइन के माध्यम से बदलने की बात कर रहे हैं, या सामान्य तौर पर, जरूरी नहीं कि सीएलआई के साथ?
daviesgeek

सच कहूँ तो मुझे आशा है कि आप इसे बदल नहीं सकते , क्योंकि निश्चित रूप से यह क्षेत्र के पूरे बिंदु को हरा देगा ?! इसके अलावा मुझे कुछ हेट की समस्या पर संदेह है कि जन्म / निर्माण समय एक मानक फाइल सिस्टम सुविधा नहीं है; hfs ने इसे अपनी विस्तारित विशेषताओं में जोड़ा है, मुझे लगता है - इसलिए जब तक कि उपयोगिताओं को पहचानने के लिए अद्यतन नहीं किया गया है, तब तक वे इसके साथ बहुत कुछ नहीं कर पाएंगे।
सीज़ियम

जवाबों:


6

touch -t यदि सृजन संशोधन समय मूल सृजन समय से पहले है, तो निर्माण समय भी बदल जाता है।

SetFile निर्माण समय को संशोधन समय से पहले या भविष्य में सेट कर सकता है।

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]" Notes:
           Enclose the string in quotation marks if it contains spa-
           ces. The date must be in the Unix epoch, that is, between
           1/1/1970 and 1/18/2038. If the year is provided as a two-
           digit year, it is assumed to be in the 21st century and
           must be from 00 (2000) through 38 (2038).

यह निर्माण समय को संशोधन समय पर सेट करेगा:

SetFile -d "$(GetFileInfo -m test.txt)" test.txt

SetFile और GetFileInfo कमांड लाइन टूल पैकेज का हिस्सा हैं, जिसे Xcode की प्राथमिकताओं या developer.apple.com/downloads से डाउनलोड किया जा सकता है


कड़ाई से "जन्म समय" ( crtime) बोल ctime रहे हैं और अलग-अलग चीजें हैं (देखें ZFS में फाइल निर्माण का समय
जी। Cito

बेशक पहुंच और संशोधन समय अक्सर एक ही होते हैं - लेकिन विभिन्न कारणों से। touchऔर stat मैनुअल पृष्ठों विवरण है। मुझे यह जानने में दिलचस्पी होगी कि OSX के साथ-साथ OSX "देशी" फाइलसिस्टम के लिए OpenZFS कैसे फील्ड को हैंडल करता है crtimeया OSX के विभिन्न संस्करणों के statलिए क्या रिपोर्ट करता है crtime
जी। साइटो

-1

प्रयत्न:

cat filename > newfile
mv filename ~/.Trash/
mv newfile filename 

वह काम करना चाहिए।


1
आपको अभी भी मूल को हटाना होगा। इंगमार ने इसे पहले ही कवर कर लिया था।
हिप्पो

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