จะค้นหาไฟล์และโฟลเดอร์ใดที่ถูกลบไปเมื่อเร็ว ๆ นี้ใน Linux?


23

ฉันมีหนึ่งโฟลเดอร์ ( /home/sam/officedocuments) ซึ่งมีหลายร้อยโฟลเดอร์และไฟล์ ฉันคิดว่าฉันลบไฟล์และโฟลเดอร์บางอย่างโดยไม่ได้ตั้งใจ แต่ฉันไม่แน่ใจ

วิธีค้นหาไฟล์ / โฟลเดอร์ใด:

  • ลบเมื่อเร็ว ๆ นี้ใน Linux?
  • เปลี่ยนเร็ว ๆ นี้ใน Linux?

ฉันแค่อยากรู้ว่าไฟล์และโฟลเดอร์ใดที่ถูกลบ การกู้คืนไฟล์และโฟลเดอร์ที่ลบไปนั้นไม่สำคัญสำหรับฉัน

ระบบปฏิบัติการ: CentOS


1
คุณควรบอกเราว่าคุณใช้ระบบไฟล์ใดอยู่ ตัวอย่างเช่นกับ ext2, ext3 และ ext4 คุณอาจใช้ext3grepโปรแกรมอรรถประโยชน์เพื่อค้นหาข้อมูลเกี่ยวกับไฟล์ที่ถูกลบ ด้วยการเขียนสคริปต์บางอย่างมันควรจะเป็นไปได้ที่จะรวบรวมแอปพลิเคชั่นที่เรียบง่ายที่แสดงรายการไฟล์ที่ถูกลบโดยยึดตามไดเรกทอรีเฉพาะ สาธารณูปโภคเหล่านี้ แต่ต้องการเข้าถึงดิบไปยังดิสก์และเป็นเช่นนี้เป็นอันตรายมากหากไม่ได้ใช้อย่างถูกต้อง ( non-blocking อ่านเท่านั้นการดำเนินงานควรจะมีความปลอดภัยอย่างสมบูรณ์ถ้าคุณจำการเขียนไปยังดิสก์เวลาเดียวกันกับที่อาจก่อให้เกิดการดำเนินการปัจจุบันที่จะกลับเสียข้อมูล / ไม่ถูกต้อง )
GoFundMonica - codidact.org

คำตอบ:


3

…เปลี่ยนเร็ว ๆ นี้ใน Linux?

ใช้findเพื่อค้นหาตามเวลาที่แก้ไข ตัวอย่างเช่นหากต้องการค้นหาไฟล์ที่สัมผัสใน 3 วันล่าสุด:

find /home/sam/officedocuments -mtime -3

สำหรับ "เก่ากว่า 3 วัน" +3การใช้งาน

…ลบเร็ว ๆ นี้ใน Linux หรือไม่

เป็นไปไม่ได้สวยมาก เมื่อไฟล์ถูกลบมันจะหายไป ในระบบส่วนใหญ่จะไม่ถูกบันทึกไว้ที่ใดก็ได้


ขอบคุณ 3 วันฉันต้องใช้3... สิ่งที่ฉันต้องใช้ใน30นาทีสุดท้าย
Sumit Gupta

Linux จะขอคำยืนยันเสมอก่อนที่จะลบไฟล์ / โฟลเดอร์ใด ๆ หรือไม่?
Sumit Gupta

16
"เป็นไปไม่ได้สวยมาก"นี่เป็นเพียงความผิดธรรมดาและด้วยเหตุนี้ฉันต้องลงคะแนนนี้ เวลาในการลบถูกเก็บไว้ในระบบไฟล์บางระบบตัวอย่างของ fs คือext3ระบบไฟล์ ext3grep อาจช่วยในการตามล่า ฉันมีsuperuser.com/a/433785/132604ซึ่งมีข้อมูลและลิงก์ไปยังยูทิลิตี้ที่สามารถใช้เพื่อค้นหา ( อาจกู้คืนได้ ) ไฟล์ที่ถูกลบและข้อมูลเกี่ยวกับพวกเขา เมื่อคุณลบไฟล์ในระบบไฟล์ส่วนใหญ่จะไม่ถูกลบจริงๆ แต่ทำเครื่องหมายเป็นพื้นที่ที่สามารถเขียนทับได้ตามความต้องการ
GoFundMonica - codidact.org

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

11

คุณอาจจะติดตั้งเครื่องมือ inotify จากนั้นคุณสามารถใช้inotifywaitคำสั่งเพื่อฟังเหตุการณ์ที่เกิดขึ้นสำหรับไดเรกทอรีที่ระบุ

โดยเฉพาะถ้าคุณต้องการดูไฟล์และโฟลเดอร์ที่ถูกลบใช้สิ่งนี้

inotifywait -m -r -e delete dir_name

และบันทึกผลลัพธ์นี้ในบางไฟล์

หวังว่านี่จะช่วยแก้ปัญหาของคุณ


1
เสียงเหมือนวิธีที่ดีที่สุดสำหรับสิ่งนี้ cli-app / daemon มีแนวโน้มที่ชื่อว่าiwatchซึ่งคุณอาจต้องการรวมไว้ในคำตอบของคุณ +1 สำหรับการใช้เครื่องมือที่เหมาะสมเพื่อแก้ปัญหา
GoFundMonica - codidact.org

ravi, @SampoSarrala - สิ่งนี้จะใช้ได้หรือไม่หากฉันต้องการดูไฟล์ใน/รูทโดยคำนึงถึงการเมานท์ / ยกเลิกการต่อเชื่อมไดรฟ์ ฉันเดาว่าในกรณีนั้นมีเพียงสิ่งเดียวที่สามารถใช้เก็บบันทึกการลบได้คือโมดูลเคอร์เนลที่จะเชื่อมต่อunlink(ดูstackoverflow.com/questions/8588386/… ) ยังman inotifywaitระบุว่า: "- เรียกซ้ำ: คำเตือน: ... ตัวเลือกนี้ในขณะที่ดู ... ต้นไม้ขนาดใหญ่อาจใช้เวลาสักครู่นอกจากนี้ ... จำนวนสูงสุดของจำนวนนาฬิกา inotify ต่อผู้ใช้จะถึง ค่าเริ่มต้นสูงสุดคือ 8192; "
sdaau

@sdaau dmesg [| tail]ควรแสดงให้คุณเห็น [เมาท์ล่าสุด] / unmounts หากนั่นคือสิ่งที่คุณต้องการ
SeldomNeedy

ฉันสงสัยว่ายังมีวิธีในการค้นหาว่ากระบวนการลบไฟล์หรือไม่ (เช่นงาน cron) ที่เกี่ยวข้อง มีกรณีของไฟล์ที่หายไปอย่างลึกลับ ...
Nagev

0

Linux โดยทั่วไปจะไม่ขอคำยืนยันก่อนที่จะลบไฟล์สมมติว่าคุณกำลังใช้งานrmจากบรรทัดคำสั่ง

หากต้องการค้นหาไฟล์ที่ถูกแก้ไขใน 30 นาทีที่ผ่านมาให้ใช้touch --date="HH:MM" /tmp/referenceเพื่อสร้างไฟล์ชื่อการอ้างอิงพร้อมเวลาประทับจาก 30 นาทีที่ผ่านมา (โดยที่ HH: MM สอดคล้องกับ 30 นาทีที่ผ่านมา) จากนั้นใช้find /home/sam/officedocuments -newer /tmp/referenceเพื่อค้นหาไฟล์ที่ใหม่กว่าการอ้างอิง

หากคุณลบไฟล์โดยใช้เครื่องมือ GUI ไฟล์เหล่านั้นอาจยังอยู่ใน "ถังขยะ" ขึ้นอยู่กับสิ่งที่คุณใช้สำหรับสภาพแวดล้อมเดสก์ทอป หากคุณใช้rmจากบรรทัดคำสั่งให้ลองใช้หนึ่งในโปรแกรมอรรถประโยชน์ที่กล่าวถึงในคำตอบนี้ (นำหมวกไปที่ @Sampo สำหรับลิงก์นั้น)


อย่าพูดว่า"ไปตลอดกาล" ... ดูความคิดเห็นในคำตอบอื่น ตอนนี้ฉันรู้สึกแบบนี้: xkcd.com/386 :)
GoFundMonica - codidact.org
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.