명령 행으로 Mac에서 삭제 된 파일 복구


24

실수로 파일을 삭제했습니다.

rm -rf ./Desktop/myScript.sh

rm명령이 일시적으로 제거 되기 때문에 파일을 복구 할 수 있다고 생각합니다 . Mac OSX에서 삭제 된 파일을 어떻게 복구 할 수 있습니까?


1
HFS +를 사용한다고 가정하고 HFS + 삭제 취소 도구를 찾고 싶을 것입니다. Apple SE 사이트는 아마도 더 많은 것을 알고있을 것입니다.
derobert

1
일화, 그러나 장인은 실수로 Mac OS X에서 큰 사진 디렉토리를 삭제했으며 다운로드 한 도구를 사용하여 대부분의 사진을 복구하는 데 성공했습니다 (비용이 많이 들지만 1 ~ 2 개의 파일에 대한 재판이있었습니다) , 작동하는지 테스트하고 충분하다면 테스트 할 수 있습니다). discussions.apple.com/thread/…
ire_and_curses

답변:


28

MacOS는 유닉스 OS이며 rm"안녕"을 의미합니다. GUI 인터페이스를 사용하면 파일을 휴지통으로 옮길 수 있지만 (복구 할 수 있음) 그렇지 않습니다. 백업이있는 경우 (예 : Time Machine이 실행중인 경우) 저장됩니다.

설명

엄밀히 말하면 (@ire_and_curses가 지적한 것처럼) a rm는 사용 된 디스크 블록 을 그대로두고 파일의 디렉토리 항목을 삭제합니다 . 파일이 있던 파일 시스템을 중지 할 수있는 경우 해당 블록 내용을 다시 검색 할 수있는 고급 방법이 있습니다. 손실을 복구하기 위해 구입할 수있는 복구 도구도 있습니다. 가장 큰 문제는 파일이 나타내는 디스크 블록을 재사용하는 것입니다.

MacOS에는 보안 제거 명령 ( srm)이있어 파일 unlink을 복구 하기 전에 파일을 덮어 씁니다 . unlinkrm명령 과 관련된 기본 시스템 호출이므로이 용어를 사용합니다 . 이것은 아래에서이 논의의 다음 부분을위한 단계를 설정합니다.

사이드 노트

[디스크를 여러 번 덮어 써도 이전에 수십 번 이상 쓴 내용을 읽는 방법이 있다는 점을 덧붙여 야합니다. 폐기를 위해 디스크를 올바르게 소독하려면 실제로 산욕, 큰 망치 및 분쇄기가 필요합니다. ]

unlink파일을 보내면 파일의 inode 링크 수가 줄어 듭니다. 이 값이 0에 도달하면 파일은 파일 시스템 디렉토리에서 삭제되고 디스크 블록은 재사용 할 수 있도록 해제됩니다. 프로세스가 파일을 열지 않은 경우에만 발생 합니다. 파일 시스템이 디스크 블록의 간단한 합산으로 설명 할 수없는 매우 많은 양의 공간을 사용하고 있다는 것을 관리자에게 혼동하는 경우가 종종 있습니다 du. 대부분의 이유는 열린 파일이 제거되어 더 이상 디렉토리에 표시되지 않기 때문입니다. 그 이유는 파일을 사용하는 마지막 프로세스가 종료 될 때까지 디스크 블록이 계속 사용되지 않기 때문입니다.

파일을 열고 즉시 파일을 여는 unlink것은 실제로 안전한 임시 파일을 만드는 일반적인 방법입니다. lsof링크 개수 (NLINK)가 0 인 파일을 찾는 경우 와 같은 도구 는 이러한 보이지 않는 파일을 노출 할 수 있습니다.

유닉스와 리눅스 (MacOS가 브랜드 유닉스 인)에서, rm할 수 있다면 fanfare없이 "do-it"라는 유닉스 철학을 따릅니다. 즉, 파일을 제거 할 수있는 권한이 있으면 (즉, 디렉토리에서 쓰기 허용) rm요청한 내용 만 수행합니다. rm='rm -i'작업을 수행하기 전에 확인을 요청 하는 셸 별칭을 만들 수 있습니다 . -f스위치를 함께 사용 rm하면 필요한 경우 무시됩니다. 별칭을 제거하면 다음과 같이 제거 rm할 때 가장 유용 glob합니다 rm *.log. 즉, 목록에서 파일을 건너 뛸 수 있습니다.


"설명"섹션에서 잘 수행되었습니다.
Tim

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 년 현재 APFS 암호화로 인해 OSX에서 블록 장치 스캔 트릭이 불가능하거나 더 어려워졌습니다. 그래도 리눅스에서 성공적으로 데이터를
얻었습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.