การค้นหาไฟล์ที่เก่ากว่า x วันในระบบที่มีช่องว่างไม่ว่าง


9

ฉันต้องการค้นหาและลบไฟล์ที่เก่ากว่า 1 สัปดาห์ในหน่วยการพัฒนา มีสาธารณูปโภคจำนวน จำกัด ในหน่วยนี้ -mtime findเพรดิเคตของไม่พร้อมใช้งาน ฉันจะตรวจสอบไฟล์ทั้งหมดที่เก่ากว่า x วันได้อย่างไร?


2
ไม่มีความชัดเจนในสิ่งที่คุณหมายถึงด้วย " mtimeไม่พร้อมใช้" ไม่ใช่ยูทิลิตี้ที่ชื่อฉันรู้จัก
Kusalananda

/ path / to / my / folder $ find -type f -mtime +7 ลบ find ค้นหา: ไม่รู้จัก: -mtime
Ravi

แบ่งปัน distro ของ linux ที่คุณใช้
ศิวะ

3
ดูเหมือนว่ามัน busybox FEATURE_FIND_MTIMEสร้างขึ้นโดยไม่ต้อง มีการFEATURE_FIND_NEWERเปิดใช้งาน? ไม่find -newerทำงานหรือไม่ testยูทิลิตี้ของคุณหรือใน[ตัวของshการสนับสนุนของคุณ-nt?
Stéphane Chazelas

1
คุณสามารถหลีกเลี่ยงปัญหานี้หากคุณสามารถใช้touch -d/ date +%sและ[ file -nt other-file ]
Stéphane Chazelas

คำตอบ:


11

-mtimeเป็นเพรดิเคตมาตรฐานของfind(ตรงกันข้าม-delete) แต่ดูเหมือนว่าคุณมีเวอร์ชันbusyboxที่แยกส่วนซึ่งFEATURE_FIND_MTIMEคุณสมบัติถูกปิดใช้งานในเวลาที่สร้าง

หากคุณสามารถสร้าง busybox ได้เมื่อเปิดใช้งานคุณควรทำสิ่งต่อไปนี้

find . -mtime +6 -type f -exec rm -f {} +

หรือหากFEATURE_FIND_DELETEเปิดใช้งาน:

find . -mtime +6 -type f -delete

หากไม่มีตัวเลือกอื่นสามารถใช้งานได้find -newer(สมมติว่าFEATURE_FIND_NEWERเปิดใช้งาน) ในไฟล์ที่ตั้งค่าให้มีเวลาการแก้ไขเก่าหนึ่งสัปดาห์

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

หรือถ้า-newerไม่ได้มี แต่sh's [สนับสนุน-nt:

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

1
ใช่ busybox เป็นรุ่นที่เบากว่าที่นี่ หลังจากสร้างใหม่find . -mtime +6 -type f -exec rm {} \;ทำงานให้ฉัน
Ravi

2

จากman find:

- เวลา n

เข้าถึงไฟล์ล่าสุดเมื่อ 24 ชั่วโมงที่แล้ว เมื่อพบว่ามีการเข้าถึงไฟล์ครั้งล่าสุดกี่ชั่วโมงที่ผ่านมาส่วนที่เป็นเศษส่วนจะถูกละเว้นดังนั้นเพื่อให้ตรงกับ -atime +1 ไฟล์จะต้องมีการเข้าถึงอย่างน้อยสองวันที่ผ่านมา

- สามเวลา

สถานะของไฟล์ถูกเปลี่ยนล่าสุดเมื่อ 24 ชั่วโมงก่อน ดูความคิดเห็นสำหรับ -atime เพื่อทำความเข้าใจว่าการปัดเศษมีผลต่อการตีความเวลาเปลี่ยนสถานะไฟล์อย่างไร

ขึ้นอยู่กับกรณีการใช้งานของไฟล์ที่คุณต้องการลบตัวเลือกเหล่านี้เป็นเพียงตัวเลือกสำหรับfindคุณ ทำไมถึงmtimeไม่สามารถใช้งานได้? คุณใช้ระบบไฟล์อะไร คุณสำรวจตัวเลือกอื่น ๆ บ้างไหม?


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