मैं चारों ओर मेरे मन लपेटो करने के लिए संघर्ष कर रहा हूँ क्योंfind
की व्याख्या संशोधन बार फाइल जिस तरह से यह करता है। विशेष रूप से, मुझे समझ में नहीं आता कि -mtime +1
48 घंटे से कम पुरानी फाइलें क्यों नहीं दिखाई जाती हैं।
एक उदाहरण परीक्षण के रूप में मैंने विभिन्न संशोधित तिथियों के साथ तीन परीक्षण फाइलें बनाईं:
[root@foobox findtest]# ls -l
total 0
-rw-r--r-- 1 root root 0 Sep 25 08:44 foo1
-rw-r--r-- 1 root root 0 Sep 24 08:14 foo2
-rw-r--r-- 1 root root 0 Sep 23 08:14 foo3
मैं फिर -mtime +1
स्विच के साथ मिल गया और निम्नलिखित आउटपुट मिला:
[root@foobox findtest]# find -mtime +1
./foo3
मैंने तब -mmin +1440
निम्न के साथ खोज की और निम्न आउटपुट प्राप्त किया:
[root@foobox findtest]# find -mmin +1440
./foo3
./foo2
खोज के लिए मैन पेज के अनुसार, मैं समझता हूं कि यह अपेक्षित व्यवहार है:
-mtime n
File’s data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
यह अभी भी मेरे लिए कोई मतलब नहीं है। इसलिए यदि कोई फ़ाइल 1 दिन, 23 घंटे, 59 मिनट और 59 सेकंड पुरानी है, तो find -mtime +1
उस सभी को अनदेखा कर देती है और इसे उसी तरह मानती है जैसे यह 1 दिन, 0 घंटे, 0 मिनट और 0 सेकंड पुराना है? किस मामले में, यह तकनीकी रूप से पुराना नहीं है कि 1 दिन और अनदेखा कर दिया जाए?
गणना नहीं करता।