เช่นเดียวกับในหัวข้อ: ฉันต้องการลบไฟล์ในไดเรกทอรีที่ได้รับการแก้ไขในช่วงวันที่ที่ต้องการ ฉันจะทำสิ่งนี้ได้อย่างไร
เช่นเดียวกับในหัวข้อ: ฉันต้องการลบไฟล์ในไดเรกทอรีที่ได้รับการแก้ไขในช่วงวันที่ที่ต้องการ ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
คำสั่งGNU find
เป็นวิธีที่จะไป ตัวอย่างเช่นหากต้องการลบไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันระหว่าง 1 ถึง 5 สิงหาคมคุณสามารถใช้คำสั่งต่อไปนี้
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
มันจะดีกว่าที่จะดำเนินการคำสั่งโดยไม่ต้อง-delete
ดำเนินการก่อนที่จะเห็นรายชื่อของไฟล์ที่สนใจ (ตัวแทนที่ดีอาจจะมี-ls
การผลิตที่ LS-เช่นรายชื่อ)
การลบ-maxdepth 1
ข้อมูลจำเพาะจะเข้าไปในไดเรกทอรีย่อยทั้งหมดด้วย
คุณยังสามารถระบุชั่วโมงได้เช่นกัน
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
ถูกเตือนว่าอย่าลบเครื่องหมายอัญประกาศเดี่ยวซึ่งจะป้องกันช่องว่างระหว่างวันที่และเวลา
ตัวละคร!
เป็นตัวปฏิเสธคุณควรอ่าน: ใหม่กว่าว่าวันที่นี้ แต่ไม่ใหม่กว่านี้วันอื่น ๆ
!
เป็นไม่ได้ ในตัวอย่างนี้: ไม่ใหม่กว่า 2011-08-06
-type f
แต่ผมจะเพิ่ม
-type f
ฉันลืมไปแล้ว -delete
เป็นส่วนขยาย GNU ผมคิดว่า