Попередження про використання 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/
нього добре, і впливає лише на резервну копію цієї дати. Кількість посилань на жорстке посилання зменшується, тому " inode " для file2
буде видалено, але для inode для file1
і file3
все ще буде посилається кількість 1 через пізніші резервні копії. Отже, rm -R /2014-11-06
теж добре.
Однак видалення будь-якого файлу з будь-якої /2014-11-13/folder/
, /2014-11-20/folder/
або /2014-11-27/folder/
фактично видалить його з усіх цих 3 папок.
Проблема полягає в тому, rm -R
що не турбуються про жорстко пов’язані папки. Він просто повторюється у будь-якій папці з твердим зв’язком, яку він знайде, сміливо видаляє всі свої файли, а потім видаляє порожню папку.
Отже: при видаленні старої резервної копії не слід повторюватись у папку з твердим зв’язком та видаляти її вміст. Натомість слід видалити лише жорстке посилання для самої папки . Отже, а не rm -R
використовувати, tmutil delete
як пояснено у відповіді Арна .
Як і в сторону, здається , що OS X unlink
команда не може бути використана в папках : «тільки один аргумент, який не повинен бути каталогом, можуть бути поставлені» . API X X може видаляти жорсткі пов'язані папки, а також GNU Coreutils , як встановлено за допомогою Homebrew .
Нарешті, щоб довести все вищесказане, тестовий випадок (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
Отже, після від’єднання одного з файлів кількість посилань зменшилось до 1 за кожне виникнення, хоча файл все одно відображається 3 рази. Жодних проблем поки немає. Знову видаліть перше виникнення:
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 входи (перший стовпець):
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//