Đã khôi phục các tệp đã xóa trên Mac bằng dòng lệnh


24

Tôi đã vô tình xóa một tập tin bằng cách chạy:

rm -rf ./Desktop/myScript.sh

Tôi nghĩ rằng nó có thể khôi phục tập tin, bởi vì rmlệnh tạm thời loại bỏ. Làm cách nào tôi có thể khôi phục tệp đã xóa trên Mac OSX?


1
Bạn sẽ muốn tìm kiếm các công cụ phục hồi HFS +, giả sử bạn đang sử dụng HFS +. Trang web Apple SE có lẽ biết nhiều hơn.
derobert

1
Giai thoại, nhưng bố chồng tôi đã vô tình xóa một thư mục ảnh lớn trên Mac OS X, và đã thành công trong việc phục hồi hầu hết chúng bằng cách sử dụng một công cụ mà ông đã tải xuống (tôi nghĩ rằng nó tốn tiền, nhưng đã dùng thử một hoặc hai tệp , vì vậy bạn có thể kiểm tra xem nó có hoạt động không, và trong trường hợp của bạn là đủ). các cuộc thảo
luận.apple.com / read / từ

Câu trả lời:


28

MacOS là một hệ điều hành Unix và rmcó nghĩa là "tạm biệt". Giao diện GUI cho phép bạn di chuyển một tệp vào thùng rác (sau đó bạn có thể khôi phục) nhưng đó không phải là những gì bạn đã làm. Nếu bạn có một bản sao lưu (ví dụ: bạn có Time Machine đang chạy) thì bạn đã được lưu.

Làm rõ

Nói một cách nghiêm túc (như @ire_and_curses chỉ ra) một rmcách đơn giản là xóa mục nhập thư mục cho tệp trong khi để các khối đĩa được sử dụng, không bị ảnh hưởng. Nếu bạn có thể kiểm tra hệ thống tệp trong đó tệp đã có, có các phương pháp nâng cao mà bạn có thể thử khám phá lại các nội dung khối đó. Ngoài ra còn có một số công cụ phục hồi có thể được mua để phục hồi tổn thất. Vấn đề trung tâm là không có gì khác sử dụng lại bất kỳ khối đĩa nào được biểu thị bằng tệp của bạn.

MacOS cũng có một lệnh remove an toàn ( srm) ghi đè lên một tập tin trước khi nó được chỉnh sửa unlinkkhiến nó không thể phục hồi được. Tôi sử dụng unlinkthuật ngữ này vì đây là lệnh gọi hệ thống cơ bản được liên kết với rmlệnh của shell . Điều này đặt sân khấu cho phần tiếp theo của cuộc thảo luận này, bên dưới.

Sidenote

[Tôi nên nhanh chóng thêm rằng ngay cả khi bạn ghi quá nhiều đĩa, có nhiều cách để đọc những gì đã được viết hàng chục lần trở lên trước đó. Để vệ sinh đúng cách một đĩa để xử lý thực sự cần một bồn tắm axit, một cái búa lớn và máy hủy tài liệu. ]

unlinking một tập tin làm giảm số lượng liên kết inode của tập tin. Nếu giá trị này bằng 0, tệp sẽ bị xóa khỏi thư mục hệ thống tệp và các khối đĩa của nó được giải phóng để sử dụng lại. Điều này chỉ xảy ra khi không có quá trình nào mở tệp. Các quản trị viên thường bối rối khi thấy rằng một hệ thống tập tin đang sử dụng một lượng không gian rất lớn không thể tính được bằng cách tính tổng các khối đĩa đơn giản (với một cái gì đó như du). Thông thường lý do là một tệp đang mở đã bị xóa, do đó nó không còn được thể hiện trong thư mục của nó. Lý do là các khối đĩa vẫn không sử dụng cho đến khi quá trình cuối cùng sử dụng tệp kết thúc.

Mở một tệp và ngay lập tức unlinking nó thực sự là một cách phổ biến để tạo các tệp tạm thời, an toàn. Các công cụ như lsofcó thể hiển thị các tệp vô hình này nếu bạn tìm các tệp có số liên kết (NLINK) bằng không.

Trong Unix và Linux (trong đó MacOS là một Unix có thương hiệu), rmtheo triết lý "làm điều đó" của Unix mà không cần phô trương nếu có thể. Đó là, nếu bạn có quyền xóa một tệp (tức là thư mục của bạn cho phép viết) thì rmsẽ thực hiện đúng những gì bạn yêu cầu. Bạn có thể muốn tạo một bí danh shell rm='rm -i'nhắc bạn xác nhận trước khi thực hiện thao tác. Sử dụng -fchuyển đổi với rmghi đè mà nếu cần thiết. Một bí danh rmlà hữu ích nhất khi bạn globloại bỏ thích rm *.log. Đó là, bạn có tùy chọn bỏ qua một tệp trong danh sách.


Cũng được thực hiện trên phần "làm rõ".
Tim

Chức năng "xóa rác an toàn" của Mac OS sử dụng một mẫu được nghiên cứu để thực sự xóa các giếng lượng tử trên các đĩa quay hiện đại. Trên lưu trữ trạng thái rắn, nó sử dụng chức năng "cắt" để đặt các khối lưu trữ được liên kết với tệp ở đầu hàng đợi "sẽ bị xóa" trong bộ điều khiển lưu trữ. Sử dụng chúng nếu bạn thực sự muốn nội dung ra khỏi đĩa của bạn, nhưng lưu ý rằng chúng mất nhiều thời gian để chà đĩa quay.
Wexxor

4

Tùy thuộc vào nội dung của bạn, nhưng bạn có thể sử dụng các phần mềm bên thứ 3 khác nhau để làm điều đó, ví dụ:

và nhiều thứ khác nữa.

Bạn có thể tìm thấy nhiều ứng dụng hơn bằng cách nhập 'phục hồi dữ liệu' trong App Store.


Cách nâng cao hơn là khởi động OSX của bạn ở chế độ phục hồi (hoặc bỏ qua phân vùng của bạn nếu bạn có thể) và tìm nó theo cách thủ công (nếu bạn nhớ một số văn bản cụ thể từ tập lệnh của mình).

Một số ví dụ:

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

1
Đã sử dụng Wondershare và nhận lại một số mã Tôi "git clean -f" 'd
fionbio 2/2/2016

2
Kể từ năm 2019, thủ thuật quét thiết bị khối là không thể hoặc khó thực hiện hơn trên OSX do mã hóa APFS. Tôi đã có dữ liệu thành công theo cách đó trên linux: P
Primehunter326
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.