ฉันจะใช้คำสั่งเพื่อลบไฟล์ทั้งหมดในดาวน์โหลดที่มีวันที่เพิ่มมากกว่า 1 ปีได้อย่างไร


12

ฉันใช้ Mac ฉันจะใช้คำสั่งเพื่อลบไฟล์ทั้งหมด~/Downloadsที่เพิ่มวันที่มากกว่า 1 ปีได้อย่างไร


1
คุณกำลังมองหาคำสั่งเทอร์มินัลโดยเฉพาะหรือสิ่งที่ต้องการดำเนินการอัตโนมัติเพียงพอหรือไม่
Jerry W.

1
คุณหมายถึงอะไรโดย "เพิ่มวันที่ของใคร?" เพิ่มไปยังอะไรและอย่างไร
อัลลัน

1
@Allan ทำเครื่องหมายที่ "View> Arrange By" หรือคอลัมน์ที่มีอยู่ใน "View Options" ใน Finder OS X ติดตามวันที่รายการถูกเพิ่มลงในโฟลเดอร์
ไมล์

@Miles - แอตทริบิวต์เหล่านั้นไม่มีใน bash ยกเว้นว่าคุณติดตั้งเครื่องมือ XCode Dev และ OP ที่ใช้เป็นพิเศษ ~ / ดาวน์โหลดซึ่งเป็นการประชุมแบบ bash (หรือโดยทั่วไปคือเชลล์)
อัลลัน

คำตอบ:


24

มันเป็นคำสั่งที่ค่อนข้างง่ายในการลบไฟล์ภายในไดเรกทอรีที่มากกว่าหนึ่งปี ตัวอย่างเช่นคำสั่งต่อไปนี้ดำเนินการใน Terminal

find ~/Downloads/ -type f -mtime +365 -exec rm {} \;

จะลบไฟล์ทั้งหมดใน~/Downloadsไดเรกทอรีที่เก่ากว่าหนึ่งปี

  • find เป็นคำสั่งที่ค้นหาคำว่า "stuff"

  • -type fบอกหาสิ่งที่จะมองหาในกรณีนี้ไฟล์

  • -mtime +365 แจ้งว่าพบว่าเวลาที่แก้ไขควรมากกว่า 365 วัน

  • -exec rm {} ผ่าน (ดำเนินการ) รายการ "พบ" แต่ละรายการไปยังคำสั่ง rm

สิ่งที่ฉันชอบทำคือทดสอบโดยไม่รวม-exec rm {} \;ส่วนและตรวจสอบให้แน่ใจว่าฉันได้รับผลลัพธ์ที่ถูกต้อง เมื่อฉันมั่นใจฉันเพิ่งเพิ่มเข้าไปเพื่อให้การลบเสร็จสมบูรณ์

หนึ่ง Caveat !! ไฟล์เหล่านี้จะไม่ถูกเพิ่มใน "ถังขยะ" ของคุณ คำสั่งจะข้ามถังขยะและถูกลบทันทีดังนั้นควรใช้ด้วยความระมัดระวัง


วิธีที่ปลอดภัยกว่า ...

(ขอบคุณผู้ใช้lucasoldainiในความคิดเห็นด้านล่าง)

หากคุณต้องการย้ายไฟล์ไปที่ "ถังขยะ" เพียงแค่แทนที่-exec rm {} \;ส่วนที่ต้องการ-exec mv {} ~/.Trash \;

พวกเขาจะยังคงอยู่ในถังขยะของคุณจนกว่าคุณจะล้างมันในครั้งต่อไป

คุณสามารถรับข้อมูลเพิ่มเติมเกี่ยวกับแต่ละคำสั่งโดยการดูหน้าคนของพวกเขา


6
แทนที่จะใช้rmคุณสามารถย้ายไฟล์ไปที่~/.Trashเพื่อป้องกันไม่ให้ถูกลบทันที
lucasoldaini

2
โปรดทราบว่าวันที่แก้ไข (ซึ่งคำตอบนี้ทำงานอยู่) นั้นแตกต่างจากวันที่ที่เพิ่มเข้ามา นอกจากนี้ Safari จะตั้งวันที่แก้ไขไฟล์ที่ดาวน์โหลดเป็นวันที่เซิร์ฟเวอร์จัดให้หากมีดังนั้นแม้ไฟล์ที่ดาวน์โหลดเมื่อวานนี้จะมีวันที่แก้ไขมากกว่าหนึ่งปี
ไมล์

2
หากคุณมี homebrew: ชงติดตั้งถังขยะและแทนที่จะใช้คำสั่งถังขยะต่อจากนี้ไป
Kyslik

ฉันอัพเดตคำตอบของฉันตามคำแนะนำของ @lucasoldaini ฉันชอบที่จะใช้วิธีการแบบบิวด์อินแทนที่จะใช้ homebrew หรือ MacPort
อัลลัน

1
ฉันชอบทางออกของคุณมากกว่าของฉัน
Jerry W.

10

หากคุณต้องการใช้ Automator คุณสามารถสร้างการดำเนินการดังนี้:

ค้นหารายการค้นหา - ค้นหาดาวน์โหลด - ทั้งหมดต่อไปนี้เป็นจริง: - วันที่สร้างไม่ได้อยู่ใน 365 วันที่ผ่านมา

รับรายการ Finder ที่เลือก

ย้ายรายการ Finder ไปที่ถังขยะ

ภาพหน้าจอที่สะดวก: การทำงานอัตโนมัติ


7

เครื่องมือที่ฉันเลือกคือHazelซึ่งเป็นซอฟต์แวร์อเนกประสงค์ต้นทุนต่ำที่ทำสิ่งต่าง ๆ กับไฟล์และโฟลเดอร์เมื่อตรงกับกฎบางอย่างที่คุณตั้งค่า กฎนี้จะย้ายไฟล์ไม่ได้เพิ่มปีที่ผ่านมาจากโฟลเดอร์Hämtade filer แตกต่างจากโซลูชันบรรทัดคำสั่งด้านบนขณะที่มันทำงานทุกวันดังนั้นชุดและลืมวิธีการแก้ปัญหา สกรีนช็อตของบานหน้าต่าง pref Hazel


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