กู้คืนไฟล์ที่ถูกลบบน Mac โดยบรรทัดคำสั่ง


24

ฉันเผลอลบไฟล์โดยใช้:

rm -rf ./Desktop/myScript.sh

ฉันคิดว่าเป็นไปได้ในการกู้คืนไฟล์เนื่องจากrmคำสั่งจะลบชั่วคราว ฉันจะกู้คืนไฟล์ที่ถูกลบใน Mac OSX ได้อย่างไร?


1
คุณจะต้องการค้นหาเครื่องมือยกเลิกการลบ HFS ​​+ โดยสมมติว่าคุณใช้ HFS + ไซต์ Apple SE อาจรู้มากกว่านี้
Derobert

1
บันทึกย่อ แต่พ่อตาของฉันลบไดเรกทอรีรูปถ่ายขนาดใหญ่ใน Mac OS X โดยไม่ได้ตั้งใจและประสบความสำเร็จในการกู้คืนส่วนใหญ่ด้วยเครื่องมือที่เขาดาวน์โหลด (ฉันคิดว่ามันคุ้มค่าเงิน แต่มีการทดลองไฟล์หนึ่งหรือสองไฟล์ ดังนั้นคุณสามารถทดสอบได้ว่ามันจะไปได้หรือไม่และในกรณีของคุณก็เพียงพอแล้ว) Discussions.apple.com/thread/…
ire_and_curses

คำตอบ:


28

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นั่นคือคุณมีตัวเลือกในการข้ามไฟล์ในรายการ


ทำได้ดีมากในส่วน "การชี้แจง"
ทิม

ฟังก์ชั่น "การลบขยะอย่างปลอดภัย" ของ Mac OS ใช้รูปแบบการวิจัยเพื่อลบหลุมควอนตัมในดิสก์หมุนที่ทันสมัย บนหน่วยเก็บข้อมูลโซลิดสเตทจะใช้ฟังก์ชัน "การตัดแต่ง" เพื่อวางบล็อกหน่วยเก็บข้อมูลที่เชื่อมโยงกับไฟล์ที่ส่วนหัวของคิว "ที่จะถูกลบ" ในคอนโทรลเลอร์หน่วยเก็บข้อมูล ใช้พวกเขาหากคุณต้องการเนื้อหาออกจากดิสก์ของคุณ แต่โปรดทราบว่าพวกเขาใช้เวลานานในการขัดดิสก์หมุน
Wexxor

4

ขึ้นอยู่กับเนื้อหาของคุณ แต่คุณสามารถใช้ซอฟต์แวร์บุคคลที่สามที่แตกต่างกันในการทำเช่น:

และอื่น ๆ อีกมากมาย.

คุณสามารถค้นหาแอพเพิ่มเติมได้โดยพิมพ์ 'การกู้คืนข้อมูล' ใน App Store


วิธีขั้นสูงเพิ่มเติมคือการบูต OSX ของคุณในโหมดการกู้คืน (หรือขยายพาร์ติชันของคุณถ้าคุณทำได้) และค้นหาด้วยตนเอง (ถ้าคุณจำข้อความเฉพาะจากสคริปต์ของคุณ)

ตัวอย่างบางส่วน:

diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"

1
ใช้ Wondershare และรับรหัสกลับมาฉัน "git clean -f" 'd
fionbio

2
ตั้งแต่ปี 2019 เคล็ดลับการสแกนอุปกรณ์บล็อกนั้นเป็นไปไม่ได้หรือทำได้ยากกว่าใน OSX ในขณะนี้เนื่องจากการเข้ารหัส APFS ฉันมีข้อมูลที่ประสบความสำเร็จเช่นนั้นบน linux แล้ว: P
primehunter326
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.