Mac OS X 10.6 / usr / bin / stat कमांड, मुझे दिखा रहा है कि डिफ़ॉल्ट आउटपुट क्या है?


5

जब मैं स्टेट कमांड चलाता हूं, तो वास्तव में आउटपुट क्या दिखा रहा है? मुझे पता है कि आप प्रारूप को निर्दिष्ट कर सकते हैं, लेकिन मैं ओएस एक्स से नेटएपीबी एसएमबी तक आरएसक्यूएन का निवारण कर रहा हूं, और जो काम कर रहा है उसे कॉपी करने की कोशिश नहीं कर रहा हूं ..

# stat /Volumes/Media/MediaBank/WEB_D/41/zoomify/41999V21.jpg
234881039 281475121196473 -rwxr--r-- 1 mbank wheel 0 378716 "Aug  9 19:17:50 2010" "Jan  3 12:56:26 2010" "Apr 26 09:34:13 2010" "Dec 27 23:35:32 2009" 16384 768 0 /Volumes/Media/MediaBank/WEB_D/41/zoomify/41999V21.jpg

और यह प्रतिलिपि है rsync'ed SAN को ..

# stat /Volumes/SAN_Media/MediaBank1/WEB_D/41/zoomify/41999V21.jpg
771751969 10654547399 -rwx------ 1 root wheel 0 378716 "Aug  9 09:39:45 2010" "Jan  3 12:56:26 2010" "Jul 23 17:52:30 2010" "Jan  3 12:56:26 2010" 33028 744 0 /Volumes/SAN_Media/MediaBank1/WEB_D/41/zoomify/41999V21.jpg

आउटपुट स्वरूप पर मेरा अनुमान है ..

unknown1 unknown2 permissions unknown3 uid gid linkcount bytes time1 time2 time3 time4 unknown4 unknown5 unknown6 fullpath .. 

जैसा कि समय के लिए, मुझे लगता है कि उनमें से तीन को एनीटाइम, माइम और कैटाइम होना चाहिए, लेकिन एक 4 क्यों है और कौन सा एक है?

जवाबों:


9

मैं OS X उपयोगकर्ता नहीं हूं, लेकिन मैं FreeBSD से परिचित हूं। इसके साथ स्टेट आउटपुट आपके जैसा ही दिखता है, लेकिन अगर आप चीजों को मानव-पठनीय बनाना चाहते हैं, तो उपयोग करें stat -x your_path

ओह, वे क्षेत्र क्या हैं? शायद OS X प्रलेखन से यह स्निपेट मदद करता है:

struct stat { /* when _DARWIN_FEATURE_64_BIT_INODE is NOT defined */
     dev_t    st_dev;    /* device inode resides on */
     ino_t    st_ino;    /* inode's number */
     mode_t   st_mode;   /* inode protection mode */
     nlink_t  st_nlink;  /* number or hard links to the file */
     uid_t    st_uid;    /* user-id of owner */
     gid_t    st_gid;    /* group-id of owner */
     dev_t    st_rdev;   /* device type, for special file inode */
     struct timespec st_atimespec;  /* time of last access */
     struct timespec st_mtimespec;  /* time of last data modification */
     struct timespec st_ctimespec;  /* time of last file status change */
     off_t    st_size;   /* file size, in bytes */
     quad_t   st_blocks; /* blocks allocated for file */
     u_long   st_blksize;/* optimal file sys I/O ops blocksize */
     u_long   st_flags;  /* user defined flags for file */
     u_long   st_gen;    /* file generation number */
 };

6

कमिंग जेन और गॉर्डन के जवाब:

statझंडे के बिना कॉलिंग :

$ stat Report.docx 
234881026 23858800 -rw-r--r-- 1 will staff 0 176083 "Apr 29 11:44:25 2012" "Apr 29 11:14:56 2012" "Apr 29 11:14:56 2012" "Apr 27 19:22:39 2012" 4096 344 0 Report.docx

कॉलिंग stat -xमानव-पठनीय लेबल देता है, लेकिन केवल 4 तिथियों में से 3 को परिभाषित करता है:

$ stat -x Report.docx 
  File: "Report.docx"
  Size: 176083       FileType: Regular File
  Mode: (0644/-rw-r--r--)         Uid: (  501/    will)  Gid: (   20/   staff)
Device: 14,2   Inode: 23858800    Links: 1
Access: Sun Apr 29 11:44:25 2012
Modify: Sun Apr 29 11:14:56 2012
Change: Sun Apr 29 11:14:56 2012

कॉलिंग stat -sसे हमें बेहतर उत्तर मिलता है:

$ stat -s Report.docx 
st_dev=234881026 st_ino=23858800 st_mode=0100644 st_nlink=1 st_uid=501 st_gid=20 st_rdev=0 st_size=176083 st_atime=1335663865 st_mtime=1335662096 st_ctime=1335662096 st_birthtime=1335518559 st_blksize=4096 st_blocks=344 st_flags=0

यहाँ हम चार दिनांकों देखें: st_atime, st_mtime, st_ctime, st_birthtime

st_birthtimeक्रिया से गायब है ( -x) आउटपुट - और मेरे लिए, यह उस createdतिथि से मेल खाता है जिसे फाइंडर दिखाता है।


मैन पेज को देखते हुए , दूसरा डॉक्यूमेंटेड स्ट्रक्चर ( when _DARWIN_FEATURE_64_BIT_INODE is defined) चार तिथियों को दिखाता है, और उन्हें नीचे परिभाषित करता है।

 The time-related fields of struct stat are as follows:

 st_atime         Time when file data last accessed.  Changed by the mknod(2), utimes(2) and read(2)
                  system calls.

 st_mtime         Time when file data last modified.  Changed by the mknod(2), utimes(2) and write(2)
                  system calls.

 st_ctime         Time when file status was last changed (inode data modification).  Changed by the
                  chmod(2), chown(2), link(2), mknod(2), rename(2), unlink(2), utimes(2) and write(2)
                  system calls.

 st_birthtime     Time of file creation. Only set once when the file is created. This field is only
                  available in the 64 bit inode variants. On filesystems where birthtime is not avail-
                  able, this field holds the ctime instead.

तो, आपकी वास्तुकला के आधार पर, चौथी तिथि या तो सृजन तिथि (64-बिट) या एक डुप्लिकेट है ctime


1

स्टेट (1) का आउटपुट अलग-अलग होगा जो सिस्टम / फाइलसिस्टम 64-बिट या 32-बिट पर निर्भर करता है। (यदि आपको 4 डेटासेट वापस मिलते हैं, तो यह 64 बिट है)।

स्टेट के लिए मैन पेज (2) और लेस्टैट (2) (जिस स्टेट के बाद (1) वास्तव में डिफ़ॉल्ट रूप से उपयोग होता है) सभी फ़ील्ड दिखाता है, लेकिन किसी कारण से, स्टेट (1) बस उसी क्रम में उन्हें वापस नहीं करता है जैसा कि वहाँ सूचीबद्ध है।

यह विकल्प के बिना स्टेट (1) का क्रम प्रतीत होता है:

  • डिवाइस आईडी
  • इनकोड संख्या
  • अनुमतियाँ (मोड)
  • कड़ी कड़ी गणना (आमतौर पर 1)
  • फ़ाइल उपयोगकर्ता (स्वामी)
  • फ़ाइल समूह
  • डिवाइस आईडी
  • बाइट्स में आकार
  • अंतिम पहुंच का समय
  • अंतिम (सामग्री) संशोधन समय
  • अंतिम अनुमतियां समय बदलती हैं
  • निर्माण का समय
  • फ़ाइल के लिए आदर्श ब्लॉक आकार
  • फ़ाइल के लिए आवंटित 512-बाइट-आकार ब्लॉक
  • फ़ाइल पर फ़्लैग सेट (देखें chflags (2))

0

के उत्पादन की तुलना करें stat -r("कच्चे" रूप में जानकारी प्रिंट करता है, उदाहरण के लिए सेकंड के बाद का समय) stat -sलेबल के साथ (शेल चर सेट करने के लिए उपयुक्त)। यदि मैं इसे सही बाहर (OS X v10.6 का उपयोग करके) पार्स करता हूं, तो फ़ील्ड हैं: डिवाइस नंबर, इनकोड नंबर (/ फ़ाइल आईडी नंबर), अनुमतियाँ मोड, लिंक गणना, स्वामी, समूह, rdev (डिवाइस फॉर कैरेक्टर और ब्लॉक स्पेशल फाइल्स) ), बाइट्स में आकार, पहुंच समय, समय संशोधित करें, परिवर्तन समय, जन्म (यानी इनोड निर्माण) समय, ब्लॉक आकार, ब्लॉक की संख्या, फ़ाइल झंडे, और अंत में नाम (/ पथ)।

ध्यान दें कि सभी समय पर गैर-ओएस एक्स-देशी फाइल सिस्टम (यानी एचएफएस + या एचएफएसएक्स नहीं) पर नज़र रखी जाएगी; SMB पर एक्सेस की गई फ़ाइलों के लिए, मुझे उम्मीद है कि रिपोर्ट किए गए समय में से कुछ को बनाया जाएगा।

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