Odzyskano usunięte pliki na komputerze Mac za pomocą wiersza polecenia


24

Przypadkowo usunąłem plik, uruchamiając:

rm -rf ./Desktop/myScript.sh

Myślę, że można odzyskać plik, ponieważ rmpolecenie jest tymczasowo usuwane. Jak mogę odzyskać usunięty plik w systemie Mac OSX?


1
Będziesz chciał poszukać narzędzi do cofnięcia usunięcia HFS +, zakładając, że używasz HFS +. Witryna Apple SE prawdopodobnie wie więcej.
derobert

1
Anegdota, ale mój teść przypadkowo usunął duży katalog zdjęć w Mac OS X i udało się odzyskać większość z nich za pomocą pobranego narzędzia (myślę, że to kosztowało, ale miałem próbę na jeden lub dwa pliki , abyś mógł przetestować, czy zadziała, a w Twoim przypadku byłoby to wystarczające). discussions.apple.com/thread/...
ire_and_curses

Odpowiedzi:


28

MacOS jest systemem operacyjnym Unix i rmoznacza „do widzenia”. Interfejs GUI pozwala przenieść plik do kosza (który można następnie odzyskać), ale nie to zrobiłeś. Jeśli masz kopię zapasową (np. Masz uruchomioną Time Machine), jesteś zapisywany.

Wyjaśnienie

Ściśle mówiąc (jak wskazuje @ire_and_curses) rmpo prostu usuwa pozycję katalogu dla pliku, pozostawiając nietknięte używane przez nią bloki dysku. Jeśli możesz wyciszyć system plików, w którym był plik, istnieją zaawansowane metody, za pomocą których możesz spróbować ponownie odkryć zawartość tych bloków. Istnieją również narzędzia do odzyskiwania, które można kupić w celu odzyskania straty. Głównym problemem jest to, że nic więcej nie wykorzystuje ponownie żadnego z bloków dysku reprezentowanych przez plik.

MacOS ma również bezpieczne polecenie usuwania ( srm), które zastępuje plik przed unlinkedycją, uniemożliwiając jego odzyskanie. Używam tego unlinkterminu, ponieważ jest to podstawowe wywołanie systemowe związane z rmpoleceniem powłoki . To przygotowuje grunt pod kolejną część dyskusji poniżej.

Dygresja

[Powinienem pośpieszyć dodać, że nawet jeśli wielokrotnie przepiszesz dysk, istnieją sposoby na przeczytanie tego, co zostało napisane kilkanaście razy wcześniej. Aby właściwie zdezynfekować dysk do utylizacji, naprawdę potrzebna jest kąpiel kwasowa, duży młotek i niszczarka. ]

unlinking plik zmniejsza liczbę węzłów i-węzła pliku. Jeśli ta wartość osiągnie zero, plik zostanie usunięty z katalogu systemu plików, a jego bloki dysku zwolnione do ponownego użycia. Dzieje się tak tylko wtedy, gdy żaden proces nie ma otwartego pliku. Administratorzy często mylą stwierdzenie, że system plików zajmuje bardzo dużo miejsca, którego nie można uwzględnić za pomocą prostego sumowania bloków dysku (z czymś podobnym du). Najczęściej przyczyną jest usunięcie otwartego pliku, aby nie był już reprezentowany w swoim katalogu. Powodem jest to, że bloki dyskowe pozostają w użyciu do czasu zakończenia ostatniego procesu z użyciem pliku.

Otwieranie i natychmiastowe wprowadzanie pliku unlinkjest w rzeczywistości powszechną praktyką tworzenia bezpiecznych plików tymczasowych. Narzędzia takie lsofmogą ujawnić te niewidoczne pliki, jeśli szukasz plików z liczbą linków równą zero (NLINK).

W systemach Unix i Linux (których MacOS jest markowym Uniksem), rmpodąża za unikatową filozofią „zrób to” bez fanfar, jeśli to możliwe. Oznacza to, że jeśli masz uprawnienia do usunięcia pliku (tzn. Twój katalog pozwala na zapis), rmrobi to, o co prosisz. Być może chcesz utworzyć alias powłoki, rm='rm -i'który monituje o potwierdzenie przed wykonaniem operacji. Używanie -fprzełącznika rmzastępuje to, jeśli to konieczne. Alias rmjest najbardziej przydatny podczas globusuwania takich jak rm *.log. Oznacza to, że możesz pominąć plik na liście.


Dobra robota w dziale „wyjaśnienia”.
Tim

Funkcja „bezpiecznego wymazywania śmieci” w systemie Mac OS wykorzystuje badany wzorzec do faktycznego wymazania studni kwantowych na nowoczesnych wirujących dyskach. W przypadku pamięci półprzewodnikowej wykorzystuje funkcję „przycinania”, aby umieścić bloki pamięci związane z plikiem na początku kolejki „do usunięcia” w kontrolerze pamięci. Użyj ich, jeśli naprawdę chcesz usunąć zawartość z dysku, ale pamiętaj, że szorowanie dysku trwa długo.
Wexxor,

4

W zależności od treści, ale możesz do tego użyć różnych programów innych firm, np .:

i wiele więcej.

Aby znaleźć więcej aplikacji, wpisz „odzyskiwanie danych” w App Store.


Bardziej zaawansowanym sposobem jest uruchomienie systemu OSX w trybie odzyskiwania (lub umountowanie partycji, jeśli możesz) i poszukiwanie jej ręcznie (jeśli pamiętasz określony tekst ze skryptu).

Przykład:

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

1
Użyłem Wondershare i odzyskałem trochę kodu I "git clean -f" 'd
fionbio

2
Od 2019 r. Sztuczka polegająca na skanowaniu urządzeń blokowych jest teraz niemożliwa lub trudniejsza do wykonania na OSX ze względu na szyfrowanie APFS. Udało mi się w ten sposób
przesłać dane w systemie
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.