Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

लिनक्स फ़ाइल टाइमस्टैम्प समझना: mtime, ctime, और atime

लिनक्स ऑपरेटिंग सिस्टम आपके सिस्टम पर प्रत्येक फ़ाइल के लिए तीन टाइमस्टैम्प ट्रैक करता है। ये टाइमस्टैम्प आपको यह पता लगाने में सक्षम बनाते हैं कि फ़ाइल को आखिरी बार कब अपडेट किया गया था। लेकिन उन सभी का क्या मतलब है? और आप किसी फ़ाइल के लिए ये समय कैसे पता करते हैं? क्या निर्देशिकाओं के मामले में कोई अंतर है?

atime, ctime, और mtime की समझ इन सभी सवालों का जवाब दे सकती है। ये तीन टाइमस्टैम्प हैं जो यूनिक्स फाइल सिस्टम ट्रैक करते हैं। यदि आपको कभी यह पता लगाने की आवश्यकता है कि क्या बदला और कब, तो पढ़ें।

तीन यूनिक्स टाइमस्टैम्प क्या हैं?

प्रत्येक फ़ाइल से तीन टाइमस्टैम्प जुड़े होते हैं। लिनक्स इन्हें यूनिक्स समय प्रारूप में संग्रहीत करता है जो युग के बाद से सेकंड मापता है। तीन टाइमस्टैम्प को आमतौर पर atime, ctime, और mtime के रूप में संदर्भित किया जाता है।

mtime सबसे आम और अक्सर सबसे उपयोगी है। यह modified time (संशोधित समय) के लिए खड़ा है। यह वह समय है जब फ़ाइल की सामग्री को आखिरी बार डिस्क पर लिखा गया था।

थोड़ा अलग है ctime जो change time (परिवर्तन समय) के लिए खड़ा है। यह टाइमस्टैम्प मेटाडेटा परिवर्तनों जैसे स्वामित्व और अनुमतियों को ट्रैक करता है। इसमें फ़ाइल का नाम बदलना शामिल है - कम से कम, सामान्य आधुनिक लिनक्स OS पर। लेकिन यह फ़ाइल की सामग्री बदलने पर भी अपडेट होता है, इसलिए यह हमेशा mtime जितना अप-टू-डेट होता है।

तीसरा टाइमस्टैम्प atime है, जो अंतिम समय को संग्रहीत करता है जब किसी ने फ़ाइल को एक्सेस किया था।

टाइमस्टैम्प निर्देशिकाओं पर कैसे लागू होते हैं

एक लिनक्स निर्देशिका, अनिवार्य रूप से, उस निर्देशिका में फ़ाइलों की एक सूची है। इसलिए एक निर्देशिका के अंदर एक फ़ाइल बनाने से उस निर्देशिका का mtime अपडेट होगा। ls कमांड का उपयोग करके, उदाहरण के लिए, निर्देशिका में फ़ाइलों को सूचीबद्ध करना, इसके एक्सेस समय को अपडेट करता है। और, एक फ़ाइल की तरह, निर्देशिका के अनुमतियों या नाम को बदलने से उसका ctime अपडेट होता है।

निर्माण समय के बारे में क्या?

यह जानकर आपको आश्चर्य हो सकता है कि लिनक्स बस निर्माण समय का ट्रैक नहीं रखता है। आप शुरू में मान सकते हैं कि ctime निर्माण समय के लिए खड़ा है। समान रूप से, आप इसे पता लगाने के लिए एक बहुत उपयोगी चीज़ के रूप में सोच सकते हैं।

कई एप्लिकेशन फ़ाइलों को हर बार स्क्रैच से बनाकर सहेजते हैं। इससे निर्माण समय का उपयोग भ्रामक हो जाएगा।

विभिन्न टाइमस्टैम्प कैसे देखें

टाइमस्टैम्प जानकारी प्राप्त करने का सबसे सरल तरीका ls कमांड के साथ है। डिफ़ॉल्ट लंबा प्रारूप mtime के लिए विवरण दिखाता है:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo "hello, world" > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

आप -u फ्लैग का उपयोग करके atime प्रदर्शित कर सकते हैं:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

अंतिम पुष्टि करता है कि इस फ़ाइल का mtime atime से अलग है। अंत में, ctime देखने के लिए -c फ्लैग का उपयोग करें:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

इस बार, हम पुष्टि करते हैं कि सभी तीन समय अलग और सही हैं: हमने फ़ाइल को संशोधित किया, फिर एक्सेस किया, फिर बदला, उस क्रम में।

ls का एक विकल्प stat कमांड है। यह कमांड फ़ाइल के इनोड से निम्न-स्तरीय विवरण प्रदर्शित करता है। यह एक बार में तीनों समय की जांच करना आसान बनाता है। यह अनजाने -u फ्लैग की समस्या को भी हल करता है। उसी फ़ाइल के लिए एक उदाहरण आउटपुट यहां दिया गया है:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

टाइमस्टैम्प कैसे अपडेट करें

touch कमांड फ़ाइल के संशोधन और एक्सेस समय को बदलता है। यह एक खाली फ़ाइल बनाने का एक सुविधाजनक तरीका भी है, जो यह करेगा यदि फ़ाइल पहले से मौजूद नहीं है:

touch tmp

डिफ़ॉल्ट रूप से, यह mtime और atime को वर्तमान समय पर सेट करेगा। आप -t फ्लैग के साथ एक अलग समय सेट कर सकते हैं:

touch -t 202103061200 tmp

आप -m और -a फ्लैग का उपयोग करके केवल mtime या atime भी सेट कर सकते हैं:

touch -t 202103061300 -m tmp

ध्यान दें कि जब हम atime या mtime सेट करते हैं तो ctime हमेशा अपडेट होता है।

टाइमस्टैम्प के आधार पर फ़ाइलें कैसे खोजें

find कमांड एक और टूल है जो टाइमस्टैम्प पर कार्य करता है। यह atime, ctime, या mtime के आधार पर फ़ाइलों को फ़िल्टर कर सकता है। उदाहरण के लिए:

find . -amin 15

ठीक 15 मिनट पहले एक्सेस की गई फ़ाइलों को ढूंढेगा, जबकि:

find . -mtime -2

पिछले दो दिनों के भीतर संशोधित फ़ाइलों को ढूंढेगा।

लिनक्स हर फ़ाइल को तीन बार ट्रैक करता है

सबसे अधिक संदर्भित फ़ाइल टाइमस्टैम्प mtime है। यह वह तारीख और समय है जो फ़ाइल लिस्टिंग दिखाती है, उदाहरण के लिए। लेकिन अन्य दो टाइमस्टैम्प भी उपयोगी हो सकते हैं, बशर्ते आप समझें कि वे क्या संदर्भित कर रहे हैं। विशेष रूप से, हमेशा याद रखें कि ctime change समय दर्शाता है, creation समय नहीं।

touch और stat जैसे कमांड लिनक्स कमांड लाइन टूलबॉक्स के उपयोगी सदस्य हैं। ये कमांड आपको नई फ़ाइलें जल्दी से बनाने की अनुमति देकर आपके लिनक्स वर्कफ़्लो को बढ़ाएंगे।

  1. लिनक्स में शटडाउन और रीबूट तिथि कैसे जांचें लिनक्स में शटडाउन और रीबूट तिथि कैसे जांचें

    बहुत सारे कारण हैं जिनकी वजह से आप जानना चाहेंगे कि आपका लिनक्स कंप्यूटर कब बंद हुआ, रीस्टार्ट हुआ, या यह कब से चल रहा है। ज्यादातर समय यह जानकारी किसी समस्या को डीबग करने में अमूल्य होती है जो तब हुई होगी जब कोई देख नहीं रहा था। शुक्र है, लिनक्स अधिकांश डिस्ट्रीब्यूशन पर सिस्टम इवेंट्स को स्वचालित

  1. शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड शेल इनिशियलाइज़ेशन फ़ाइलें और यूजर प्रोफाइल मास्टर करना: लिनक्स एडमिनिस्ट्रेटर्स के लिए गाइड

    लिनक्स एक मल्टी-यूजर, टाइम-शेयरिंग सिस्टम है, जिसका अर्थ है कि एक से अधिक उपयोगकर्ता लॉग इन कर सकते हैं और सिस्टम का उपयोग कर सकते हैं। और सिस्टम एडमिनिस्ट्रेटर्स का कार्य विभिन्न पहलुओं को प्रबंधित करना है कि कैसे अलग-अलग उपयोगकर्ता सॉफ्टवेयर इंस्टॉल/अपडेट/हटाने, वे कौन से प्रोग्राम चला सकते हैं, व

  1. chmod 777 समझें: इसका क्या अर्थ है और यह लिनक्स परमिशन को कैसे प्रभावित करता है chmod 777 समझें: इसका क्या अर्थ है और यह लिनक्स परमिशन को कैसे प्रभावित करता है

    यह लेख chmod 777 का पता लगाता है, एक लिनक्स कमांड जिसका उपयोग यूजर, ग्रुप, और अन्य सभी को सभी अधिकार देने के लिए किया जाता है। एक नए लिनक्स यूजर, वेब डेवलपर, या सिस्टम एडमिनिस्ट्रेटर के रूप में, आपको शायद किसी बिंदु पर टाइप करने का निर्देश दिया गया होगा: chmod 777 /path/to/file/or/folder …अपने लि