ฉันเผลอลบไฟล์โดยใช้:
rm -rf ./Desktop/myScript.sh
ฉันคิดว่าเป็นไปได้ในการกู้คืนไฟล์เนื่องจากrm
คำสั่งจะลบชั่วคราว ฉันจะกู้คืนไฟล์ที่ถูกลบใน Mac OSX ได้อย่างไร?
ฉันเผลอลบไฟล์โดยใช้:
rm -rf ./Desktop/myScript.sh
ฉันคิดว่าเป็นไปได้ในการกู้คืนไฟล์เนื่องจากrm
คำสั่งจะลบชั่วคราว ฉันจะกู้คืนไฟล์ที่ถูกลบใน Mac OSX ได้อย่างไร?
คำตอบ:
MacOS เป็น Unix OS และrm
แปลว่า "ลาก่อน" อินเทอร์เฟซ GUI อนุญาตให้คุณย้ายไฟล์ไปที่ถังขยะ (ซึ่งคุณสามารถกู้คืนได้) แต่นั่นไม่ใช่สิ่งที่คุณทำ หากคุณมีข้อมูลสำรอง (เช่นคุณใช้งาน Time Machine) คุณจะได้รับการบันทึก
การอธิบาย
การพูดอย่างเคร่งครัด (ตามที่ @ire_and_curses ชี้ให้เห็น) rm
เพียงแค่ลบรายการไดเรกทอรีสำหรับไฟล์ในขณะที่ออกจากบล็อกดิสก์ที่ใช้ไม่มีการแตะ หากคุณสามารถหยุดระบบไฟล์ที่เคยเป็นมาได้มีวิธีการขั้นสูงที่คุณสามารถลองค้นหาเนื้อหาบล็อกเหล่านั้นอีกครั้ง นอกจากนี้ยังมีเครื่องมือการกู้คืนซึ่งสามารถซื้อเพื่อกู้คืนการสูญเสีย ปัญหาหลักคือไม่มีอะไรที่จะใช้ดิสก์บล็อกใด ๆ ที่แสดงโดยไฟล์ของคุณ
MacOS ยังมีคำสั่งลบอย่างปลอดภัย ( srm
) ซึ่งเขียนทับไฟล์ก่อนที่มันจะunlink
ทำให้ไม่สามารถกู้คืนได้ ฉันใช้unlink
คำศัพท์เพราะนี่คือการเรียกระบบพื้นฐานที่เกี่ยวข้องกับrm
คำสั่งของเชลล์ ขั้นตอนนี้กำหนดขั้นตอนสำหรับส่วนถัดไปของการสนทนาด้านล่าง
sidenote
[ฉันควรเร่งที่จะเพิ่มสิ่งนั้นแม้ว่าคุณจะเขียนทับดิสก์หลายครั้ง แต่ก็มีวิธีอ่านสิ่งที่เขียนหนึ่งโหลหรือหลายครั้งก่อนหน้านี้ เพื่อให้การทำความสะอาดดิสก์อย่างถูกต้องสำหรับการกำจัดนั้นจำเป็นต้องมีอ่างแช่ด้วยค้อนและค้อนขนาดใหญ่ ]
unlink
การส่งไฟล์จะลดจำนวนการเชื่อมโยง inode ของไฟล์ หากค่านี้ถึงศูนย์ไฟล์จะถูกลบออกจากไดเร็กทอรีระบบไฟล์และบล็อกดิสก์ของมันจะว่างสำหรับการนำกลับมาใช้ใหม่ สิ่งนี้จะเกิดขึ้นเมื่อไม่มีกระบวนการใดเปิดไฟล์ไว้ ผู้ดูแลระบบมักพบว่าระบบไฟล์กำลังใช้พื้นที่จำนวนมากซึ่งผู้ใช้ไม่สามารถเข้าใจได้ด้วยการรวมบล็อกดิสก์อย่างdu
ง่าย สาเหตุส่วนใหญ่มักเกิดจากมีการลบไฟล์ที่เปิดอยู่ดังนั้นจึงไม่ได้แสดงในไดเรกทอรีอีกต่อไป เหตุผลก็คือดิสก์บล็อกยังคงมีการใช้งานอยู่จนกว่ากระบวนการสุดท้ายที่ใช้ไฟล์จะถูกยกเลิก
การเปิดไฟล์และในทันทีunlink
มันเป็นวิธีปฏิบัติทั่วไปในการสร้างไฟล์ชั่วคราวที่ปลอดภัย เครื่องมือเช่นlsof
นี้สามารถเปิดเผยไฟล์ที่มองไม่เห็นเหล่านี้ได้หากคุณค้นหาไฟล์ที่มีจำนวนลิงค์ (NLINK) เท่ากับศูนย์
ใน Unix และ Linux (ซึ่ง MacOS เป็น Unix ที่มีแบรนด์) rm
ดังต่อไปนี้ปรัชญา Unix ของ "do-it" โดยไม่มีการประโคมถ้าทำได้ นั่นคือถ้าคุณมีสิทธิ์ในการลบไฟล์ (เช่นไดเรกทอรีของคุณอนุญาตให้เขียน) จากนั้นrm
ทำตามที่คุณขอ คุณอาจต้องการสร้างนามแฝงเชลล์rm='rm -i'
ที่พร้อมท์ให้คุณยืนยันก่อนดำเนินการ การใช้-f
สวิตช์ด้วยการrm
แทนที่ถ้าจำเป็น aliased rm
เป็นประโยชน์มากที่สุดเมื่อคุณทำลบเช่นglob
rm *.log
นั่นคือคุณมีตัวเลือกในการข้ามไฟล์ในรายการ
ขึ้นอยู่กับเนื้อหาของคุณ แต่คุณสามารถใช้ซอฟต์แวร์บุคคลที่สามที่แตกต่างกันในการทำเช่น:
และอื่น ๆ อีกมากมาย.
คุณสามารถค้นหาแอพเพิ่มเติมได้โดยพิมพ์ 'การกู้คืนข้อมูล' ใน App Store
วิธีขั้นสูงเพิ่มเติมคือการบูต OSX ของคุณในโหมดการกู้คืน (หรือขยายพาร์ติชันของคุณถ้าคุณทำได้) และค้นหาด้วยตนเอง (ถ้าคุณจำข้อความเฉพาะจากสคริปต์ของคุณ)
ตัวอย่างบางส่วน:
diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"