Przypadkowo usunąłem plik, uruchamiając:
rm -rf ./Desktop/myScript.sh
Myślę, że można odzyskać plik, ponieważ rm
polecenie jest tymczasowo usuwane. Jak mogę odzyskać usunięty plik w systemie Mac OSX?
Przypadkowo usunąłem plik, uruchamiając:
rm -rf ./Desktop/myScript.sh
Myślę, że można odzyskać plik, ponieważ rm
polecenie jest tymczasowo usuwane. Jak mogę odzyskać usunięty plik w systemie Mac OSX?
Odpowiedzi:
MacOS jest systemem operacyjnym Unix i rm
oznacza „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) rm
po 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 unlink
edycją, uniemożliwiając jego odzyskanie. Używam tego unlink
terminu, ponieważ jest to podstawowe wywołanie systemowe związane z rm
poleceniem 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. ]
unlink
ing 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 unlink
jest w rzeczywistości powszechną praktyką tworzenia bezpiecznych plików tymczasowych. Narzędzia takie lsof
mogą 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), rm
podąż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), rm
robi 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 -f
przełącznika rm
zastępuje to, jeśli to konieczne. Alias rm
jest najbardziej przydatny podczas glob
usuwania takich jak rm *.log
. Oznacza to, że możesz pominąć plik na liście.
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"