หากคุณแตกไฟล์ดังกล่าวซึ่งการประทับเวลาการแก้ไขในไฟล์เก็บถาวรจะไม่ถูกเก็บไว้ในสำเนาที่คลายบีบอัด (แต่ไฟล์ที่คลายบีบอัดนั้นมีเวลาแก้ไขตามปกติ) วิธีที่เหมาะสมในการโจมตีคือเวลาแก้ไข ไฟล์ที่คลายทั้งหมดมีการประทับเวลาการแก้ไขที่ใหม่กว่าไฟล์ที่มีการแก้ไขล่าสุดในไดเรกทอรีนั้น
นี่เป็นสถานการณ์ที่เรียบง่าย
สมมติว่าไม่มีไฟล์ใดที่มีอยู่ในไดเรกทอรีปัจจุบันที่ถูกแตะอย่างน้อย 24 ชั่วโมง สิ่งใดก็ตามที่ได้รับการแก้ไขใน 24 ชั่วโมงที่ผ่านมาดังนั้นขยะจาก zipfile
$ find . -mtime -1 -print0 | xargs -0 rm
นี่จะค้นหาบางไดเร็กทอรีเช่นกัน แต่rm
จะทิ้งไว้คนเดียว พวกเขาสามารถจัดการกับในรอบที่สอง:
$ find . -mtime 1 -type d -print 0 | xargs -0 rmdir
ไดเร็กทอรีใด ๆ ที่ถูกแก้ไขเมื่อเร็ว ๆ นี้ได้รับการแก้ไขโดย zip หากrmdir
ลบไฟล์ออกสำเร็จแสดงว่าไม่มีข้อมูล ไดเรกทอรีว่างที่ถูกสัมผัสโดย zip อาจถูกสร้างขึ้นโดยมัน: ie มาจากไฟล์เก็บถาวร เราไม่สามารถแน่ใจได้ 100% เป็นไปได้ว่างาน unzip ทำให้บางไฟล์ลงในไดเรกทอรีที่มีอยู่ซึ่งว่างเปล่า
หากfind
24 ชั่วโมงของเมล็ดละเอียดไม่ดีพอสำหรับงานเนื่องจากไฟล์ในแผนผังถูกแก้ไขเร็ว ๆ นี้จากนั้นฉันจะพิจารณาบางสิ่งง่ายๆ: สมมติว่างาน unzip ไม่ได้ใส่อะไรลงในไดเรกทอรีย่อยที่มีอยู่ กล่าวคือทุกสิ่งที่ unzipped นั้นอาจเป็นไฟล์ที่ระดับบนสุดหรือไดเรกทอรีย่อยใหม่ซึ่งไม่เคยมีมาก่อนซึ่งประกอบด้วยเนื้อหาใด ๆ จาก zip แล้ว:
# list directory in descending order of modification time
$ ls -1t > filelist # descending order of modification time
ตอนนี้เราเปิดfilelist
ในโปรแกรมแก้ไขข้อความและกำหนดรายการแรกในรายการที่ไม่ได้มาจาก zip เราลบรายการนั้นและทุกอย่างอื่นหลังจากนั้น สิ่งที่เหลืออยู่คือไฟล์และไดเรกทอรีที่มาจากรหัสไปรษณีย์ ก่อนอื่นเราจะตรวจสอบปัญหาเช่นการเว้นวรรคในชื่อและการปรากฏของคำพูดที่ต้องหลบหนี จากนั้นเราสามารถเพิ่มเครื่องหมายคำพูดรอบ ๆ ทุกสิ่งหากจำเป็น: สิ่งต่อไปนี้จะถือว่าคุณใช้ Vim:
:%s/.*/"&"/
จากนั้นเข้าร่วมทั้งหมดเป็นเส้นใหญ่:
:%j
ตอนนี้ใส่rm -rf
ข้างหน้ามัน:
Irm - rf<ESC>
รันบรรทัดภายใต้เคอร์เซอร์เป็นคำสั่งเชลล์:
!!sh<Enter>
แน่นอนฉันจะไม่ทำตามขั้นตอนของงานนี้โดยอัตโนมัติเนื่องจากมีความเสี่ยงในการลบไฟล์ที่มีอยู่แล้วหรือมีปัญหาเกิดขึ้นเนื่องจากปัญหาชื่อไฟล์
หากคุณกำลังจะไปเส้นทางที่ชัดเจนของการรับรายการเส้นทางใน zip จากนั้นจับมันเป็นไฟล์ดูอย่างระมัดระวังและแปลงเป็นการลบหลังจากทำการแก้ไขที่จำเป็น
lq
ตัวเลือกสำหรับunzizp
ฉันเพิ่งเพิ่มเล่ห์กล * nix แบบคลาสสิกรอบคำตอบหลักของเขา