bypass
명령을 사용하여 이전 백업을 제거하는 것에 대한 경고 : 삭제 된 백업에 이전 또는 이후 백업에서 정확히 동일한 폴더 가 있으면 파일이 이전 또는 이후 백업에서도 삭제 될 수 있습니다 !
Time Machine은 변경되지 않은 파일에 하드 링크를 사용할뿐만 아니라 파일이 추가, 변경 또는 삭제되지 않은 폴더에 하드 링크를 사용합니다. 결과는 다음과 같습니다.
/2014-11-06/folder/file1
/file2
/file3
/2014-11-13/folder/file1 = hard link to file /2014-11-06/folder/file1
/file2 (changed; new inode)
/file3 = hard link to file /2014-11-06/folder/file3
/2014-11-20/folder/ = hard link to folder /2014-11-13/folder/
/2014-11-27/folder/ = hard link to folder /2014-11-20/folder/
위의 경우 파일을 삭제해도 문제 /2014-11-06/folder/
가 없으며 해당 날짜의 백업에만 영향을줍니다. 하드 링크 참조 카운트는 "그래서, 감소하는 아이 노드 에 대한"가 file2
제거됩니다 만, 아이 노드에 대한 file1
및 file3
때문에 나중에 백업 여전히 1의 참조 카운트를해야합니다. 따라서 rm -R /2014-11-06
괜찮습니다.
그러나 중 하나에서 모든 파일을 제거 /2014-11-13/folder/
, /2014-11-20/folder/
또는 /2014-11-27/folder/
효과적으로 모든 3 개 폴더에서 제거됩니다.
문제는 rm -R
하드 링크 된 폴더에 신경 쓰지 않는다는 것입니다. 찾은 하드 링크 된 폴더로 돌아가서 모든 파일을 굵게 삭제 한 다음 빈 폴더를 제거합니다.
따라서 오래된 백업을 제거 할 때 하드 링크 된 폴더로 돌아가서 그 내용을 삭제해서는 안됩니다. 대신 폴더 자체의 하드 링크 만 제거해야합니다 . 따라서 Arne의 답변에 설명 된 대로 rm -R
사용하십시오 .tmutil delete
따로, OS X unlink
명령 은 폴더에서 사용할 수없는 것 같습니다 : "디렉토리가 아니어야하는 하나의 인수 만 제공 될 수 있습니다 . " OS X API는 하드 링크 된 폴더를 제거 할 수 있으며 Homebrew를 사용하여 설치된 것과 같은 GNU Coreutils 도 마찬가지 입니다.
마지막으로 위의 모든 사항을 입증하기 위해 테스트 사례 (OSX 10.6.8) :
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME staff 1551 10 30 2014 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME staff 1551 10 30 2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME staff 1551 10 30 2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 2 USERNAME staff 1551 10 30 2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist
각 발생에 대한 링크 수는 2 (두 번째 열)입니다. 첫 번째 발생을 제거합시다 :
sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-06-012454/Users/USERNAME/Library/Safari/TopSites.plist
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME staff 1551 10 30 2014 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME staff 1551 10 30 2014 2014-11-20-014044/Users/USERNAME/Library/Safari/TopSites.plist
-rw-r--r--@ 1 USERNAME staff 1551 10 30 2014 2014-11-27-025033/Users/USERNAME/Library/Safari/TopSites.plist
따라서 파일 중 하나를 연결 해제 한 후 파일이 여전히 3 번 표시되지만 각 발생에 대해 링크 수가 1로 떨어졌습니다. 아직 문제 없습니다. 첫 번째 발생을 다시 제거하십시오.
sh-3.2# /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass unlink 2014-11-13-024438/Users/USERNAME/Library/Safari/TopSites.plist
sh-3.2# ls -lFa 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist
ls: 2014-11*/Users/USERNAME/Library/Safari/TopSites.plist: No such file or directory
이제 모두 사라졌습니다. 분명히 파일 TopSites.plist
은 2014-11-06에 마지막으로 변경되었고 2014-11-13에 하드 링크 된 후 다른 파일이 Safari
폴더 에 추가, 변경 또는 제거되었을 때 나타납니다 . 다음 Safari
으로 두 번의 백업에서 폴더 의 내용이 변경되지 않았으므로 2014-11-20 및 2014-11-27에서 Safari
폴더가 이전 백업에 하드 링크되었습니다.
실제로 4 개의 폴더는 2 개의 inode 만 사용합니다 (첫 번째 열).
sh-3.2# ls -lFaid 2014-11*/Users/USERNAME/Library/Safari/
648651968 drwxr-xr-x@ 86 USERNAME staff 2924 9 10 16:06 2014-11-06-012454/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME staff 2924 9 10 16:07 2014-11-13-024438/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME staff 2924 9 10 16:07 2014-11-20-014044/Users/USERNAME/Library/Safari//
650804457 drwxr-xr-x@ 86 USERNAME staff 2924 9 10 16:07 2014-11-27-025033/Users/USERNAME/Library/Safari//