स्टेट: एक फ़ाइल का संशोधन टाइमस्टैम्प


11

मैं stat -f %m .bashrcosx पर अपने .bashrc के संशोधन समय प्राप्त करने के लिए उपयोग करता हूं। लेकिन जब मैं उबंटू पर एक ही कमांड चलाता हूं, तो यह त्रुटि करता है:

stat: cannot read file system information for %m': No such file or directory

क्या इसे प्राप्त करने का एक संगत तरीका है?

जवाबों:


12

उबंटू GNU कोरुटिल्स का उपयोग करता है stat, जबकि OSX BSD वेरिएंट का उपयोग करता है। तो Ubuntu पर कमांड थोड़ी अलग है:

stat -c %Y .bashrc

से man stat:

   -c  --format=FORMAT
          use the specified FORMAT instead of the default; output  a  new
          line after each use of FORMAT

तथा:

   %Y     time of last data modification, seconds since Epoch

यदि आप ओएस की परवाह किए बिना इन्हें चलाने का एक पोर्टेबल तरीका चाहते हैं, तो इसे करने के कई तरीके हैं। मुझे लगता है कि मैं एक चर को उपयुक्त मापदंडों पर सेट करूंगा:

if uname | grep -q "Darwin"; then
    mod_time_fmt="-f %m"
else
    mod_time_fmt="-c %Y"
fi

और फिर statकमांड में इस मान का उपयोग जहाँ भी आवश्यक हो:

stat $mod_time_fmt .bashrc

7

यह इस बात पर निर्भर करता है कि आप "यह" से क्या मतलब है। यदि आप पूछ रहे हैं कि क्या फ़ाइल के mtimeसाथ एक पोर्टेबल तरीका है stat(1), तो नहीं, वहाँ नहीं है। बीएसडी stat(1)लिनक्स से अलग है stat(1)

यदि आप पूछ रहे हैं कि क्या कोई फ़ाइल प्राप्त करने का एक पोर्टेबल तरीका है mtime, तो हाँ, आप ऐसा कर सकते हैं perl(1):

perl -e 'print +(stat $ARGV[0])[9], "\n"' file

6

चूंकि OSX और उबंटू संस्करणों में statकुछ अंतर है कि OSX statडिफॉल्ट्स के साथ आउटपुट आउटपुट और लिनक्स statडिफॉल्ट्स को वर्बोज़ करने के लिए कुछ हुप्स के माध्यम से कूदना होगा। एक संभावना बस OSX पर एक उपनाम का उपयोग करने के लिए दोनों पर एक ही प्रदर्शन करेंगे।

अगर आपको statOSX पर वर्बोज़ आउटपुट को मजबूर करने के लिए एक उपनाम स्थापित करने में कोई आपत्ति नहीं है, alias stat="stat -x"तो आपको पर्ल की आवश्यकता नहीं है।

stat .bashrc| grep Modify उबंटू के तहत आप सभी की जरूरत है यदि आप उर्फ ​​को ऊपर सेट करते हैं तो यह OSX के तहत भी काम करता है

Ubuntu 14.04.5 से उदाहरण लगभग समान परिणाम Ubuntu 16.04 से प्राप्त किए जा सकते हैं

   stat .bashrc| grep Modify
Modify: 2014-03-30 23:14:47.658210121 -0500

यदि आप चाहते हैं कि टाइमस्टैम्प आपके पास है Modify:और बाकी को बनाए रख सकते हैं

stat .bashrc| grep Modify | cut -c 9-

सूत्रों का कहना है:

https://ss64.com/osx/stat.html

OSX पर स्टेट का आउटपुट


1
मुझे लगता है कि आप OSX पर -x विकल्प याद कर रहे हैं।
fushupinnanren

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