Um aviso sobre o uso do comando bypass
para remover um backup antigo: se o backup excluído tiver pastas exatamente iguais em backups anteriores ou posteriores, os arquivos também poderão ser excluídos de backups anteriores ou posteriores !
O Time Machine não usa apenas hard links para arquivos inalterados, mas também usa hard links para pastas nas quais nenhum arquivo foi adicionado, alterado ou excluído. Isso resulta em algo como:
/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/
Com o acima, excluir qualquer arquivo de /2014-11-06/folder/
é bom e afeta somente o backup para essa data. As contagens de referência do link físico são reduzidas, então o " inode " para file2
será removido, mas inodes para file1
e file3
ainda terão uma contagem de referência de 1 devido aos backups posteriores. Portanto, rm -R /2014-11-06
também é bom.
No entanto, a remoção de qualquer arquivo de /2014-11-13/folder/
, /2014-11-20/folder/
ou /2014-11-27/folder/
o removerá efetivamente de todas essas três pastas.
O problema é que rm -R
não se importa com pastas com link físico. Ele apenas recursiva em qualquer pasta com link físico encontrado, exclui com coragem todos os seus arquivos e, em seguida, remove a pasta vazia.
Portanto: ao remover um backup antigo, não é necessário recorrer a uma pasta com link físico e excluir seu conteúdo. Em vez disso, deve-se apenas remover o link físico para a própria pasta . Então, ao invés de rm -R
use tmutil delete
como explicado na resposta do Arne .
Como um aparte, parece que o comando OS X unlink
não pode ser usado em pastas : " apenas um argumento, que não deve ser um diretório, pode ser fornecido ". A API do OS X pode remover pastas com link físico, e assim pode GNU Coreutils , como instalado usando Homebrew .
Finalmente, para provar todos os itens acima, um caso de teste (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
Observe que o número de links para cada ocorrência é 2 (segunda coluna). Vamos remover a primeira ocorrência:
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
Então, depois de desvincular um dos arquivos, o número de links caiu para 1 para cada ocorrência, embora o arquivo ainda seja mostrado 3 vezes. Nenhum problema ainda. Remova a primeira ocorrência novamente:
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
Agora todos se foram. Aparentemente, o arquivo TopSites.plist
foi alterado pela última vez em 2014-11-06 e com hard-link em 2014-11-13, quando alguns outros arquivos foram adicionados, alterados ou removidos na pasta Safari
. Em seguida, o conteúdo da pasta Safari
não foi alterado nos dois backups subsequentes, portanto, em 2014-11-20 e 2014-11-27, a pasta Safari
foi vinculada ao backup anterior.
De fato, as 4 pastas usam apenas 2 inodes (primeira coluna):
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//