명령줄을 통해 Mac에서 삭제된 파일 복구

명령줄을 통해 Mac에서 삭제된 파일 복구

다음 명령을 실행하여 실수로 파일을 삭제했습니다.

rm -rf ./Desktop/myScript.sh

명령어로 일시적으로 파일을 삭제하기 때문에 파일을 복구할 수 있을 것 같습니다 rm. Mac OSX에서 삭제된 파일을 복구하는 방법은 무엇입니까?

답변1

rmMacOS는 "안녕"을 의미하는 Unix 운영 체제입니다 . GUI 인터페이스를 사용하면 파일을 휴지통으로 이동할 수 있지만(이후 복원 가능) 실제로는 그렇지 않습니다. 백업이 있는 경우(예: Time Machine이 실행 중인 경우) 저장됩니다.

밝히다

엄밀히 말하면 (@ire_and_curses가 지적했듯이) a는 rm파일의 디렉토리 항목을 삭제하는 반면떠나다디스크 블록이 사용되며 영향을 받지 않습니다. 파일이 있는 파일 시스템을 정지할 수 있는 경우 고급 방법을 사용하여 블록 내용을 재발견할 수 있습니다. 손실을 복구하기 위해 구입할 수 있는 복구 도구도 있습니다. 핵심 문제는 파일이 나타내는 디스크 블록을 다른 어떤 것도 재사용할 수 없다는 것입니다.

srmMacOS에는 파일을 편집하기 전에 덮어써서 unlink복구할 수 없게 만드는 안전 삭제 명령( )도 있습니다 . 내가 이 unlink용어를 사용하는 이유는 이것이 rm쉘 명령과 연관된 저수준 시스템 호출이기 때문입니다. 이는 아래 논의의 다음 부분을 위한 단계를 설정합니다.

사이드 노트

[급히 덧붙이자면, 디스크를 여러 번 덮어쓰더라도 이전에 쓴 내용을 수십 번 이상 읽을 수 있는 방법이 있습니다. 디스크를 적절하게 소독하려면 산성 용액, 큰 망치, 그라인더가 필요합니다. ]

unlink파일을 삭제하면 파일의 inode 링크 수가 줄어듭니다. 값이 0에 도달하면 파일이 파일 시스템 디렉터리에서 제거되고 해당 디스크 블록이 재사용을 위해 해제됩니다. 이 문제는 다음에서만 발생합니다.아니요프로세스가 파일을 열었습니다. 파일 시스템이 단순히 디스크 블록(예 du: ) 을 추가하는 것만으로는 설명할 수 없는 많은 양의 공간을 차지한다는 사실을 발견하면 관리자는 종종 혼란스러워합니다. 가장 일반적인 원인은 열려 있는 파일이 삭제되어 해당 디렉터리에 더 이상 표시되지 않는다는 것입니다. 그 이유는 파일을 사용하는 마지막 프로세스가 종료될 때까지 디스크 블록이 계속 사용되기 때문입니다.

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

Unix와 Linux(MacOS는 Unix의 브랜드임)에서는 rm"do-it"이라는 Unix 철학을 따르고 가능하면 눈에 띄지 않게 하세요. 즉, 파일을 삭제할 수 있는 권한이 있는 경우(즉, 디렉터리에서 쓰기가 허용되는 경우) rm요청하는 작업을 수행하세요. rm='rm -i'작업을 수행하기 전에 확인 메시지를 표시하는 셸 별칭을 생성할 수 있습니다 . 필요한 경우 -f오버라이드 기능이 있는 스위치를 사용하십시오. 즉, 다음과 같은 항목을 삭제할 때 rm목록에서 파일을 건너뛰도록 선택할 수 있습니다.rmglobrm *.log

답변2

콘텐츠에 따라 다르지만 다음과 같은 다양한 타사 소프트웨어를 사용하여 이 작업을 수행할 수 있습니다.

더 많은 것이 있습니다.

App Store에서 "데이터 복구"를 입력하면 더 많은 앱을 찾을 수 있습니다.


더 발전된 방법은 복구 모드에서 OSX를 부팅하고(또는 가능하다면 파티션을 마운트 해제하고) 수동으로 찾는 것입니다(스크립트의 특정 텍스트를 기억하는 경우).

몇 가지 예:

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

관련 정보