सवाल लिनक्स टच निर्देशिका कमांड


निर्देशिका पर लागू होने पर 'स्पर्श' कमांड क्या होता है?

$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test

7
2017-10-27 16:11


मूल




जवाब:


जैसा कि कहा गया मैनपेज में, का प्राथमिक उपयोग touch क्या यह:

प्रत्येक फ़ाइल के उपयोग और संशोधन समय को अद्यतन करें   वर्तमान समय।

तो यह निर्देशिका के उपयोग और संशोधन समय अद्यतन करता है।


7
2017-10-27 16:16





शीर्ष पर उदाहरण यह स्पष्ट नहीं करता है कि "स्पर्श" निर्देशिका के समय को सेट करता है (लिस्टिंग में नया समय मूल जैसा ही था, बस क्योंकि निर्देशिका बनाने के तुरंत बाद स्पर्श था) .. हां, प्रलेखन में "फ़ाइल" की परिभाषा में निर्देशिकाएं शामिल हैं, इसलिए आप अपने टाइमस्टैम्प को बदलने के लिए स्पर्श का उपयोग कर सकते हैं, लेकिन ...

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

$ touch -d "2014-07-02 12:15" /public/test.dir    
touch: setting times of ‘/public/test.dir’: Operation not permitted

साथ ही, आप कुछ पुराने तिथियों के साथ समस्याएं प्राप्त कर सकते हैं जो कुछ सर्वरों पर समर्थित नहीं हैं, उदाहरण के लिए:

$ mkdir  /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir

यह काम:

$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr  1  2014 /Acer/kopies/test.dir

यह स्थानीय डीआईआर पर काम करेगा लेकिन सांबा माउंट के तहत एक अजीब तारीख देता है:

$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26  60410 /Acer/kopies/test.dir
                              ~~~~~~~~~~~~~

3
2018-03-11 04:58





touch एक मानक यूनिक्स प्रोग्राम है जो फ़ाइल की पहुंच को बदलने के लिए उपयोग किया जाता है और   संशोधन टाइमस्टैम्प। यह एक नई खाली फ़ाइल बनाने के लिए भी प्रयोग किया जाता है।

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

-Wikipedia

आप पर अधिक गहराई से जानकारी पा सकते हैं touch आदेश का उपयोग करके आदेश (या कोई अन्य आदेश जिसे आप जानना चाहते हैं) man इस तरह का आदेश:

man touch


2
2017-10-27 17:13





प्रश्न का तत्काल कारण यह तथ्य है कि डिफ़ॉल्ट समय का संकल्प ls -l मिनटों में है, इसलिए एक ही मिनट के भीतर एक फाइल सिस्टम प्रविष्टि छुआ डिफ़ॉल्ट रूप से वही दिखाई देगी ls -l उत्पादन।

इसका समाधान यहां वर्णित है https://superuser.com/questions/355318/how-to-have-linux-ls-command-show-second-in-time-stamp और मूल रूप से चलना शामिल है ls -l --time-style=full-iso बजाय।


1
2017-09-18 13:55