ฉันดิ้นรนที่จะปิดใจว่าทำไมการ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
ตามหน้า man สำหรับการค้นหาฉันเข้าใจว่านี่เป็นพฤติกรรมที่คาดหวัง:
-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 วันและถูกละเว้น?
ไม่ ... ไม่คำนวณ