ค้นหาไฟล์ที่มีการเปลี่ยนแปลงใน 24 ชั่วโมงที่ผ่านมา


265

เช่นเซิร์ฟเวอร์ MySQL กำลังทำงานบนเครื่อง Ubuntu ของฉัน ข้อมูลบางอย่างมีการเปลี่ยนแปลงในช่วง 24 ชั่วโมงที่ผ่านมา

สคริปต์อะไร (Linux) สามารถค้นหาไฟล์ที่มีการเปลี่ยนแปลงในช่วง 24 ชั่วโมงที่ผ่านมา?

กรุณาระบุชื่อไฟล์ขนาดไฟล์และเวลาที่แก้ไข


1
คุณสามารถใช้stackoverflow.com/questions/4561895/…
vaugham

คำตอบ:


479

หากต้องการค้นหาไฟล์ทั้งหมดที่แก้ไขใน 24 ชั่วโมงที่ผ่านมา (เต็มวันล่าสุด) ในไดเรกทอรีเฉพาะและไดเรกทอรีย่อย:

find /directory_path -mtime -1 -ls

ควรเป็นที่ชื่นชอบของคุณ

-ก่อนที่จะ1เป็นสิ่งที่สำคัญ - มันหมายความว่าอะไรเปลี่ยนแปลงวันหนึ่งหรือน้อยกว่าที่ผ่านมา +ก่อนที่1อะไรจะแทนค่าเฉลี่ยการเปลี่ยนแปลงอย่างน้อยหนึ่งวันที่ผ่านมาในขณะที่มีอะไรก่อนที่1จะมีความหมายมันก็เปลี่ยนไปไขว่คว้าหนึ่งวันที่ผ่านมาไม่มากไม่น้อย


17
ดี! สองชั่วโมงที่แล้ว
JackWM

114
ใช้ "-mmin -120" แทน mtime
Xavjer

1
ทำไม-ก่อนถึงค่าตัวเลข?
EsseTi

6
อาร์กิวเมนต์เป็น -mtime ถูกตีความว่าเป็นจำนวนวันทั้งวันในอายุของไฟล์ -mtime + n หมายถึงอย่างยิ่งใหญ่กว่า -mtime -n หมายถึงน้อยกว่าอย่างเคร่งครัด
Xavjer

3
ถึงผู้อ่าน: อย่าลืมลบ-lsเมื่อใช้ในสคริปต์
redolent

41

คุณสามารถทำได้ด้วย

find . -mtime 0

จากman find:

เวลา [เนื่องจาก] แต่ละไฟล์ถูกแก้ไขครั้งล่าสุดถูกหารด้วย 24 ชั่วโมงและส่วนที่เหลือจะถูกยกเลิก ซึ่งหมายความว่าในการจับคู่ -mtime 0 ไฟล์จะต้องมีการแก้ไขในอดีตซึ่งน้อยกว่า 24 ชั่วโมงที่ผ่านมา


25

อีกวิธีที่มีมนุษยธรรมมากขึ้น:

find /<directory> -newermt "-24 hours" -ls

หรือ:

find /<directory> -newermt "1 day ago" -ls

หรือ:

find /<directory> -newermt "yesterday" -ls

11

บนระบบที่เข้ากันได้กับ GNU (เช่น Linux):

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

รายการนี้จะแสดงรายการไฟล์และไดเรกทอรีที่ได้รับการแก้ไขใน 24 ชั่วโมงที่ผ่านมา ( -mtime 0) โดยจะแสดงรายการเวลาที่แก้ไขล่าสุดในรูปแบบที่สามารถจัดเรียงได้และมนุษย์อ่านได้ ( %T+) ตามด้วยขนาดไฟล์ ( %s) ตามด้วยชื่อไฟล์แบบเต็ม ( %p) แต่ละไฟล์คั่นด้วยแท็บ ( \t)

2>/dev/nullโยนเอาต์พุต stderr ใด ๆ ออกไปดังนั้นข้อความแสดงข้อผิดพลาดจะไม่ทำให้น้ำขุ่น sort -rเรียงลำดับผลลัพธ์ตามการแก้ไขล่าสุดก่อน และ| moreแสดงผลลัพธ์ครั้งละหนึ่งหน้า


2
คุณสามารถใช้| lessแทน| moreฉันได้
Stephen G Tuggy

7

สำหรับผู้อื่นที่มาถึงที่นี่ในอนาคต (รวมถึงตัวฉันเอง) ให้เพิ่มตัวเลือก -name เพื่อค้นหาประเภทไฟล์เฉพาะเช่น: find /var -name "*.php" -mtime -1 -ls


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.