`टच` कमांड के वैध उपयोग क्या हैं?


83

touchकमांड का क्या मतलब है ? मुझे पता है कि मैं इसके साथ खाली फाइलें बना सकता हूं, लेकिन ऐसा ही है echo -n

अन्यथा, किसी को फ़ाइल के टाइमस्टैम्प को बदलने की आवश्यकता क्यों होगी? जब तक किसी फ़ाइल की आयु के बारे में गलत धारणा नहीं बनाई जाती है, तब तक मुझे कोई अन्य उपयोग नहीं दिखता है, और यह एक वैध नहीं है (मेरे दृष्टिकोण से)।


15
इसके बजाय echo -n > filename, आप निम्न चला सकते हैं:>filename
AMADANON इंक।

77
नाजायज उपयोग क्या हैं ?
बमरगुलीज

10
Unless to create the false impression about the age of a file। आवश्यक नहीं गलत धारणा। यदि आप संशोधन समय बदलना चाहते हैं तो क्या होगा ? यह लिपियों में उपयोगी हो सकता है। यह स्क्रिप्ट बहुत हद तक touchकमांड पर निर्भर करती है और इसे इस तरह रखना बहुत सुविधाजनक और सरल है।
वीएल -80

7
tarएक संग्रह को निकालने पर विचार करें कि (या अन्य डी-आर्काइव) क्या करते हैं। आम तौर पर वे संग्रह से समय के लिए फ़ाइल का संशोधन समय निर्धारित करते हैं, न कि संग्रह को निकाले जाने का समय और यह एक वांछनीय विशेषता है। चूंकि यह गलत टाइमस्टैम्प बनाने के लिए उपयोगकर्ता-मोड प्रोग्राम के लिए वैध है, इसलिए बहुत तर्क नहीं है touch(या कुछ अन्य कमांड-लाइन प्रोग्राम) इसे कमांड-लाइन तर्क के आधार पर अनुमति नहीं देनी चाहिए। लर्निंग सी आपको shस्क्रिप्ट लिखने वाले किसी व्यक्ति की तुलना में अधिक वैध नहीं बनाता है ;-)
स्टीव जेसोप

5
यूनिक्स में, कोई टाइमस्टैम्प नहीं है जो ageकिसी फ़ाइल का वर्णन करता है। यह एक creationटाइमस्टैम्प होगा और यूनिक्स में फाइलों के लिए ऐसा टाइमस्टैम्प नहीं है।
केविन फेगन

जवाबों:


98

इसका एक फायदा touchयह है कि यह मनमाना टाइमस्टैम्प निर्दिष्ट कर सकता है, जबकि echo -nवर्तमान समय में इसका परिणाम हमेशा रहेगा।

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

अन्य उपयोग उन फ़ाइलों को बनाने के लिए हैं जो पूरी तरह से अपने अस्तित्व के आधार पर कार्य करते हैं /etc/nologin, उदाहरण के लिए , जो मौजूद होने पर लॉगिन को अस्वीकार कर देता है। मैं यह भी तर्क दूंगा कि टाइप करने के लिए छोटा होने के साथ-साथ touch myfileएक सरल निर्माण भी है echo -n >> myfile


18
एक अन्य आम उपयोग: एक फ़ाइल को एक विशिष्ट तिथि तक स्पर्श करें, फिर "फाइंड / -newer / / फाइल" को खोजने के लिए सभी फाइलों को बदलने / उसके बाद बनाने के लिए
ओलिवियर दुलैक

@ सीरीज़ जब मैंने जांच की तो echo -nमैंने देखा कि यह कहता है कि "अनुगामी न्यूलाइन का उत्पादन न करें"। इसलिए मैं यह नहीं देखता कि यह एक खाली फाइल कैसे बना सकता है। क्या आप कृपया स्पष्ट कर सकते हैं?
गीक

3
@ गीक echo -nएक खाली स्ट्रिंग का उत्पादन करेगा, और खुद कुछ भी नहीं करता है। इसके आउटपुट को पुनर्निर्देशित >>करने से रिक्त आउटपुट फ़ाइल में जोड़े जाते हैं। यदि फ़ाइल मौजूद नहीं है तो पुनर्निर्देशन फ़ाइल को बनाने का कारण होगा।
केसी

6
यह काम नहीं करता है: आउटपुट के लिए एक मौजूदा फ़ाइल खोलना, लेकिन इसे लिखना नहीं, माइम को नहीं बदलता है (मेरे सिस्टम पर, वैसे भी)। यहां तक ​​कि अगर यह किया है, आप की जरूरत नहीं है और echo -nएक कमांड के लिए उपयोग नहीं करना चाहिए जो कुछ भी नहीं करता है। echo -nकुछ गोले के तहत स्ट्रिंग "-n" का उत्पादन कर सकता है। यदि आपको वास्तव में एक ऐसी कमांड की आवश्यकता है जो कुछ भी नहीं करती है, :या trueएक बेहतर विकल्प है, लेकिन >> myfileअपने आप में फ़ाइल बनाने का एक पूरी तरह से वैध तरीका है यदि यह मौजूद नहीं है। यह सब, निश्चित रूप से, आपके उत्तर का समर्थन करता है कि आपको "टच" का उपयोग करना चाहिए।
१d

40

अंतर्निहित प्रणाली कॉल ( utime) विभिन्न उपयोगिताओं के लिए महत्वपूर्ण है जैसे tarकि एक नई कॉपी की गई टाइमस्टैम्प (बिना-तार वाली) फ़ाइल को सेट करने में सक्षम हो। कुछ बैकअप उपयोगिताओं को भी कॉपी किया जा सकता है जो उन्होंने कॉपी की गई फ़ाइलों के अंतिम-एसेस्टाइम को रीसेट करने के लिए किया है।

इसका एक वैध उपयोग touchकिसी विशेष टाइमस्टैम्प के साथ एक फ़ाइल बनाना है। इस तरह के "संदर्भ" फ़ाइल का उपयोग तब जैसे कमांड द्वारा किया जा सकता है find। उदाहरण के लिए, 1 नवंबर, 2013 (यानी 2013/11/01) की तुलना में हाल ही में संशोधित सभी फाइलों को खोजने के लिए "

touch -amt 201311010000 myref
find . -type f -newer myref -exec ls -ld {} +

कैसे गणना करने के लिए 201311010000 इसका मतलब है कि Nov1,2013? क्या कोई उपयोगिता है जो मुझे यह बताएगी? दूसरे शब्दों में, मैं स्पर्श करने के लिए इनपुट कैसे निर्धारित करूं?
गीक

4
@ गीक संख्या को देखते हुए और यह देखते हुए कि पहले भाग 20131101को 2013-11-01, या 1 नवंबर, 2013 को तोड़ा जा सकता है । आप तब मान सकते हैं कि 0000भाग दिन के एक विशिष्ट समय को इंगित करता है, इस मामले में 00 घंटे, 00 मिनट। या आप केवल उस आदमी पृष्ठ को देख सकते हैं touch, जो आपको बताता है कि प्रारूप क्या है (देखें -t)।
JAB

@ गीक मैनपावर आपके दोस्त हैं :-)
JRFerguson

39

touchआदेश का प्राथमिक उद्देश्य फ़ाइलों के निर्माण के लिए फ़ाइलों के timestamps जोड़ तोड़ रहा है, और।

उदाहरण

1. फाइलें बनाना

$ ls -l
total 0

$ touch file{1..3}

$ ls -l
total 0
-rw-rw-r--. 1 saml saml 0 Jan 12 13:33 file1
-rw-rw-r--. 1 saml saml 0 Jan 12 13:33 file2
-rw-rw-r--. 1 saml saml 0 Jan 12 13:33 file3

नोट:total 0 से उत्पादन ls -lसही है। यह क्रियान्वयन lsफाइलों द्वारा सूचीबद्ध किए जाने वाले ब्लॉक की संख्या को दर्शाता है जब वे सूचीबद्ध होते हैं। आप -sस्विच में जोड़कर खुद को इस तथ्य के बारे में आश्वस्त कर सकते हैं ls। यह प्रत्येक फ़ाइल के उपयोग के ब्लॉक को सूचीबद्ध करेगा। यहाँ मैंने file1 और file2 में 2 अक्षर जोड़े हैं।

उदाहरण

$ ls -ls
total 8
4 -rw-rw-r--. 1 saml saml 3 Jan 13 12:07 file1
4 -rw-rw-r--. 1 saml saml 3 Jan 13 12:09 file2
0 -rw-rw-r--. 1 saml saml 0 Jan 13 12:05 file3

2. फाइल का समय / तारीख की जानकारी - स्टेटमेंट

$ stat file1
  File: ‘file1’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd02h/64770d    Inode: 11403667    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2014-01-12 13:33:38.279456149 -0500
Modify: 2014-01-12 13:33:38.279456149 -0500
Change: 2014-01-12 13:33:38.279456149 -0500
 Birth: -

हम touchकिसी दिए गए फ़ाइल पर विभिन्न टाइमस्टैम्प में हेरफेर करने के लिए उपयोग कर सकते हैं ।

3. टच मैन पेज से अंश

   -a     change only the access time
   -m     change only the modification time
   -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

4. पहुंच समय में हेरफेर

$ touch -a -t200001010000 file1

$ stat file1
  File: ‘file1’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd02h/64770d    Inode: 11403667    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2000-01-01 00:00:00.000000000 -0500
Modify: 2014-01-12 13:33:38.279456149 -0500
Change: 2014-01-12 13:38:52.023434696 -0500
 Birth: -

5. संशोधित समय में हेरफेर

$ touch -m -t200001010000 file1

$ stat file1
  File: ‘file1’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fd02h/64770d    Inode: 11403667    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2000-01-01 00:00:00.000000000 -0500
Modify: 2000-01-01 00:00:00.000000000 -0500
Change: 2014-01-12 13:39:31.060432026 -0500
 Birth: -

आप बदलाव के समय (समय) के बारे में सोच रहे होंगे। इसका उपयोग करके हेरफेर नहीं किया जा सकता है touch। उस समय को ट्रैक करता है, जब फ़ाइल पर किसी भी मेटा डेटा को छुआ गया था। अधिक विवरण के लिए इस U & L Q & A को देखें, जिसका शीर्षक है: "चेंज" टाइमपास को ट्रिगर किए बिना आप किसी फ़ाइल का क्या कर सकते हैं?


@ सिस्म: मेरा प्रश्न यह है कि मुझे पता है कि स्पर्श टाइमस्टैम्प बदलने के लिए है। मैं सिर्फ यह जानना चाहता था कि एक ईमानदार उपयोगकर्ता ऐसा क्यों चाहेगा। यदि यह आपके उत्तर के भाग के लिए नहीं था, तो मैंने आपको -1 दिया था।
क्वारा फेंस

16
@QuoraFea - मेरा उत्तर आपके लाभ और कभी उपयोगकर्ता के लिए है जो कभी भी भविष्य में इसके पार आता है। कृपया यह न समझें कि एक उत्तर विशुद्ध रूप से आपकी खातिर है और मुझे खेद है कि अगर मैंने आपको किसी भी तरह से नाराज किया, तो यह मेरा इरादा नहीं था, मैं केवल इस बात को समझने का प्रयास कर रहा था कि समय कैसे काम करता है।
SLM

@ शिम: मैं नाराज नहीं हूं, बस सोचा कि जवाब सही दिशा में नहीं जा रहा है। वैसे भी, इस उत्तर के लिए धन्यवाद।
Quora फेंस

@QuoraFea - आपका काफी स्वागत है, और अपने Q के लिए आपका धन्यवाद। उन्होंने सराहना की!
SLM

1
@ गीक - कमांड का प्रयास करें। यह उस ls -lडायरेक्टरी से सही आउटपुट है जहाँ फ़ाइलों का आकार 0 है, और कुछ भी अभी तक मौजूद नहीं है। जैसे ही आप फ़ाइलों में से किसी एक को आकार देते हैं, तो कुल फ़ाइलों के उपयोग में ब्लॉक / w की मात्रा दिखाएगा। यदि आप अनिश्चित हैं तो मेरे अपडेट देखें, मैंने एक उदाहरण जोड़ा है।
SLM

20

आपको मिले दो अन्य बहुत अच्छे उत्तरों के अलावा, एक और उपयोग है, आपके शब्दों में, को

एक फ़ाइल की आयु के बारे में गलत धारणा बनाएं

उदाहरण के लिए बैकअप योजनाओं में उपयोग के लिए । एक दूरस्थ होस्ट के लिए एक धीमी लाइन, कहते हैं, आप एक बैकअप के साथ अद्यतन नहीं करना चाहते हो सकता है, क्योंकि वे समान हैं, या एक बैकअप अद्यतन करने की तुलना में परिवर्तन अप्रासंगिक हैं। इसे प्राप्त करने के लिए, आपके पास बैकअप टाइमस्टैम्प के साथ बैकअप फ़ाइल को चिह्नित करने का सरल विकल्प है, न कि फ़ेकिंग लेकिन यह घोषणा करना कि उस फ़ाइल की वैधता टाइमस्टैम्प अब एक अलग है।

फ़ाइल की आयु के बारे में धारणा अब वास्तव में गलत है, लेकिन इसका अर्थ वास्तविक और वैध है।


20

सबसे आम उपयोगों में से touchएक है - या कम से कम उपयोग किया जाता है - कोड के पुनर्निर्माण के लिए।

सामान्य रूप से निर्मित उपकरण - makeऔर इसके व्युत्पन्न - फ़ाइलों को फिर से जमा / पुनर्निर्माण नहीं करके काम को बचाने की कोशिश करते हैं जब तक कि उन्हें बनाने वाली फ़ाइलों में से एक बदल नहीं गया है - उदाहरण के लिए, यदि .o फ़ाइल .c से अधिक हाल ही में है। स्रोत, यह आमतौर पर यह मान लेना सुरक्षित है कि सी स्रोत को उस ऑब्जेक्ट फ़ाइल के उत्पादन के लिए संकलित किए जाने के बाद से नहीं बदला गया है।

लेकिन ऐसे समय होते हैं जब आप किसी चीज़ को फिर से बनाने के लिए मजबूर करना चाहते हैं। आप इसके स्रोत फ़ाइलों में से एक के लिए एक अनावश्यक संशोधन कर सकते हैं, लेकिन यह गलती से किसी चीज को नुकसान पहुंचाता है। इसके बजाय, आप बस touchफ़ाइल को बना सकते हैं, जिससे इसकी सामग्री को बदलने के किसी भी जोखिम के बिना नया दिख सकता है - और makeयह समझाने के लिए पर्याप्त होगा कि यह उस फ़ाइल पर निर्भर होने वाली हर चीज़ के पुनर्निर्माण का समय था।

अन्य उपयोग भी हैं, लेकिन ऐतिहासिक रूप से वह बड़ा था।


हालांकि यह एक अच्छा विचार है कि मैं इसके खिलाफ बहस करने के लिए एक पुनर्निर्माण का कारण बनने के लिए एक फ़ाइल बदलने के लिए। कुछ स्रोत कोड संशोधन सिस्टम एक बदली हुई फ़ाइल के बारे में भ्रमित हो सकते हैं। इसलिए touchमैन्युअल बदलाव जितना बुरा है। एक पुनर्निर्माण का कारण बनने के लिए मैं सुझाव देता हूं कि .oप्रश्न में स्रोत की आउटपुट फ़ाइलों को हटा दिया जाए ।
हार्पर

1
मैन्युअल .o फ़ाइलों को बदलने और हटाने के लिए दोनों को अधिक समय और टाइपिंग की आवश्यकता होती है, और मैन्युअल परिवर्तन बहुत अधिक त्रुटि-प्रवण होता है। और हम केवल काम की प्रतिलिपि पर टाइमस्टैम्प को संशोधित करने के बारे में बात कर रहे हैं - यदि संपादन बाद में किए जाते हैं, तो फ़ाइल सही ढंग से परिवर्तन टाइमस्टैम्प को प्रतिबिंबित करेगी। और सभी संस्करण नियंत्रण प्रणाली एक टाइमस्टैम्प द्वारा भ्रमित नहीं हैं।
डेविड

1
जैसा कि डेविड ने कहा। यह वास्तव में मानक यूनिक्स अभ्यास था जो बहुत पहले नहीं था, और अभी भी आईडीई के बाहर काम करने वाले डेवलपर्स के लिए मानक अभ्यास है।
केशलम

12

मैंने कम से कम एक वेब फ्रेमवर्क के साथ काम किया है (जो याद नहीं कर सकता है) कि विकास मोड में परिवर्तनों के लिए स्रोत कोड फ़ाइलों को देखा और जब ऐसा हुआ तब एप्लिकेशन को पुनः लोड किया।

निश्चित रूप से कभी-कभी आप चाहते थे कि कुछ बदलने के बाद इसे फिर से लोड किया जाए, जिस स्थिति में touchइसकी मुख्य कॉन्फ़िगरेशन फ़ाइल आईएनजी ने चाल चली।

इसलिए, सामान्य स्थिति में, जब भी आप फ़ाइल में बदलाव के लिए शुरू की गई प्रक्रिया को शुरू करना चाहते हैं, तो वास्तव में फ़ाइल को बदले बिना।


4
यह वास्तव में mod_wsgi और अपाचे के साथ मामला है; आप पुनः लोड कर सकते हैं, उदाहरण के लिए, सिर्फ wsgi फ़ाइल को छूकर एक django वेब ऐप।
सपि

11

स्पर्श का वैध उपयोग:

  • उस समय ली गई छवि फ़ाइलों (GIF / JPG / etc) के टाइमस्टैम्प को अपडेट करें। सभी रेंडरर्स EXIF ​​जानकारी को नहीं पढ़ते या उसकी परवाह नहीं करते।
  • सी / एम-समय रखें जब बड़े पैमाने पर फाइलों का एक सेट अपडेट किया जाता है जहां फाइलों के बंडल के लिए टाइमस्टैम्प महत्वपूर्ण है।
  • एक बैच (यानी CSV) फ़ाइल का समय निर्धारित करें यदि आपको विफलता के बाद एक और आयात करने की आवश्यकता है, और आयात कार्यक्रम समय स्टाम्प पर निर्भर करता है (उस चर्चा को किसी अन्य विषय पर छोड़ दें :-))
  • अभिलेखीय उद्देश्य, अर्थात वर्ष के आधार पर फ़ोल्डरों में बैकअप होता है, फिर इन फ़ोल्डरों पर आसान टाइपिंग के लिए 1 जनवरी को YYYY समय निर्धारित करना

7

एक उपयोग अनुचित तरीके से सेट की गई फ़ाइल के टाइमस्टैम्प को सही करने के लिए है।

उदाहरण के लिए, किसी भी तरह से आप किसी फ़ाइल की प्रतिलिपि बनाते हैं (और कुछ तरीकों से जो आप किसी फ़ाइल को स्थानांतरित कर सकते हैं) परिणाम नई फ़ाइल में वर्तमान समय का टाइमस्टैम्प होता है, बजाय मूल फ़ाइल के टाइमस्टैम्प के।

आमतौर पर, यह वांछित नहीं है। स्पर्श "ठीक" कर सकता है।

एक अन्य उपयोग एक फ़ाइल संशोधन को प्रतिबिंबित करने के लिए है जो फ़ाइल टाइमस्टैम्प को "संपादन ... पूर्व-संपादन" संचालन से पहले बहाल करके पूर्ववत था।


2
वास्तव में। गर्त समय मैंने पाया alias cp='cp --preserve=timestamps'है कि मेरे लिए पीसी भूमि में अधिक अनुकूल है ...
रनियम

5

एक महत्वपूर्ण अंतर बनाम की thingsतरह echo(या > fileदूसरों के द्वारा उल्लेखित बेहतर ) यह है कि स्पर्श सामग्री को नष्ट नहीं करेगा। > fileएक फ़ाइल खाली कर देगा। touchनहीं होगा। कंटेंट डैमेज से बचने के लिए टोटके सोचने की बजाय सिर्फ टच का इस्तेमाल करें! यह वैसे भी कर्नेल में कम काम करेगा, क्योंकि यह केवल फ़ाइल की विशेषताओं के साथ काम करेगा, बिना समय बर्बाद किए वास्तव में एक खुली तैयारी कर रहा है और फिर एक करीबी प्रदर्शन करेगा।

टच शायद टाइमस्टैम्प को बदल सकता है भले ही फ़ाइल वर्तमान में अनिवार्य या सलाहकार लॉक, या एक विशेष खुले के तहत हो। हम्म्, ने कभी इसका परीक्षण नहीं किया या इसके बारे में नहीं पढ़ा ...


2
>>अधिलेखित करने के बजाय अपील करेंगे
माइकल Mrozek

मैंने इसका उल्लेख करने पर विचार किया, लेकिन यह साइड-इफेक्ट क्षेत्र में और भी अधिक हो रहा है। आपको इस तथ्य का भी उल्लेख करना होगा कि यदि फ़ाइल अनन्य रूप से पहले से ही खोली गई है, तो यह एक त्रुटि होगी, आदि आदि। एक समस्या जो कि> के उपयोग के माध्यम से भी लागू हो सकती है। मैं अपने द्वितीयक बिंदु का अनुमान लगाता हूं - प्राथमिक से परे कि यह केवल फ़ाइल के आंकड़ों को छूने के लिए थोड़ा तेज है - क्या यह कोड लिखने का एक अच्छा विचार है जो इसे सीधे बताता है, बजाय झाड़ी के चारों ओर।

4

यहाँ एक है - मैं टीवी शो रिकॉर्ड करने के लिए SageTV नामक एक सॉफ्टवेयर प्रोग्राम का उपयोग करता हूं - ये अक्सर MPEG-2 में रिकॉर्ड किए जाते हैं जो कि बहुत कुशल कोडेक नहीं है, यह iPad / iPhone के अनुकूल नहीं है। तो मैं फ़ाइलों को .mp4 फ़ाइलों में परिवर्तित करता हूं। लेकिन जब फ़ाइलें वापस खेलती हैं तो SageTV टीवी शो शुरू होने पर फ़ाइल के टाइमस्टैम्प की उम्मीद करता है - अगर नहीं तो यह शो की समय-सीमा को बढ़ा देता है ताकि FF या REW के लिए आसान न हो। इसलिए मैं .mp4 फ़ाइल के टाइमस्टैम्प को रीसेट करने के लिए स्पर्श का उपयोग करता हूं जो कि ओरिजिनल फ़ाइल के समान है।
क्या यह वैध है?


2

अक्सर आपके पास एक ऐसी प्रक्रिया हो सकती है जो उपयोगकर्ता से बदलती है, जैसे रूट -> कुछ और। टच आपको एक ऐसी जगह एक फाइल बनाने का मौका दे सकता है जो केवल रूट को दूसरे उपयोगकर्ता के रूप में आवेदन करने से पहले ही छू सकती है।


यह "इको" द्वारा
अस्वीकार्य है

इको में एक स्ट्रीम खोलना और ऐसा शामिल है। स्पर्श सीधे इनोड्स के साथ काम करके हाइपर अनुकूलित किया जा सकता है। प्रदर्शन FTW!
user56560

2

काम पर हमारे पास 15 + वर्ष पीछे जाने वाले डिजिटल मानचित्रों का एक संग्रह है। इन पुराने नक्शों को कई तरह के फॉर्मेट में सहेजा जाता है जैसे पोस्टस्क्रिप्ट, ईएमएफ, PRN, hpgl2, pdf, इत्यादि, जिन्हें ज्यादातर प्रोग्राम समझ नहीं पाते हैं। या आपको उन सभी को देखने के लिए एक दर्जन विभिन्न कार्यक्रमों की आवश्यकता है।

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

अब हम पूरे पुस्तकालय को देखने के लिए पिकासा जैसे एकल कार्यक्रम का उपयोग कर सकते हैं और निश्चित तिथि सीमाओं का पता लगा सकते हैं। स्पर्श के बिना हमें हर एक छवि के लिए तारीख मेटाडेटा जोड़ना होगा, संभवतः मैन्युअल रूप से, और फिर एक विशिष्ट तिथि सीमा की तलाश में उन स्ट्रिंग्स पर खोज करें।


1

मैंने अभी तक इस उद्देश्य के लिए इसका उपयोग नहीं किया है, लेकिन मेरे पास एक स्क्रिप्ट है जो फाइलों और उनकी तारीखों को एक निर्देशिका से पढ़ती है और उन्हें वेब पेज पर उपयोग करने के लिए पढ़ती है। अगर मुझे एक को संपादित करना है, तो यह इसकी तारीख बदल देगा। मैंने touchउनके ऑर्डर को रीसेट करने के लिए उन पर विचार किया है ।


1

कुछ init-script एक config-file के टाइमस्टैम्प की तुलना अपनी स्वयं की pid-file से करते हैं। परिणाम तय करता है कि रनिंग सर्विस को फिर से लोड करना है या नहीं।

यदि कोई ऐसी स्थिति है जहां आप कॉन्फ़िगरेशन को बदलना नहीं चाहते हैं, लेकिन फिर से लोड करने के लिए बाध्य करना चाहते हैं, तो स्पर्श आपको यहां मदद करता है।


0

मेरे पास एक क्रॉन जॉब है जो एक डेटाबेस से परिवर्तन प्राप्त करता है जो नौकरी के अंतिम भाग और वर्तमान रन के बीच हुआ है। यह उन परिवर्तनों की XML फ़ाइल तैयार करता है, जिन्हें बाद में एक अलग डेटाबेस में संसाधित किया जाता है। यह एक्सएमएल आउटपुट फाइल पर टाइम-स्टैंप से आखिरी रन टाइम मिलता है। *

अगर XML फ़ाइल के प्रसंस्करण में कुछ भी गड़बड़ा जाता है, तो मैं मूल तिथि से रन को दोहराना चाह सकता हूं, नई XML फ़ाइल के टाइम-स्टैंप पर निर्दिष्ट तारीख से नहीं।

ऐसा करने का सबसे सरल तरीका है, जिसे स्क्रिप्ट कहा जाता है आदि को संपादित करने के बजाय एक्सएमएल फ़ाइल को छूना और उस समय-स्टैंप को बाध्य करना है जो मुझे चाहिए।

इसके अलावा अगर मैं नए सिरे से शुरू करता हूं (बिना किसी एक्सएमएल आउटपुट फाइल के) तो मैं टच के जरिए इसके अस्तित्व का अनुकरण कर सकता हूं।

[*] इससे पहले कि कोई इसे इंगित करे - मुझे लगता है कि काम शुरू होने का समय और एक्सएमएल फ़ाइल का लेखन कुछ मिनटों का समय अंतराल छोड़ देता है जहां डीबी परिवर्तन हो सकता है। नौकरी ऐसे समय में चलती है जब DB परिवर्तन बेहद संभव नहीं हैं। यह मेरा बहाना है और मैं इसे कर रहा हूँ :-)

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