質問: コマンドラインを使用してtime machineファイルを削除する方法 rmを使用してtime machineパーティションからいくつかのファイル/ディレクトリを削除したいのですが、削除できません。私は問題がバックアップ内のファイルのある種のアクセス制御拡張属性に関連していると確信していますが、rmを機能させるためにそれらを上書き/無効にする方法がわかりません。私が得ているエラーの例は次のとおりです:% sudo rm -rf backups.backupdb/macbook/latest/macbook/somedir rm: backups.backupdb/macbook/latest/macbook/somedir: directory not empty rm: backups.backupdb/macbook/latest/macbook/somedir/somefile: operation not permitted time machine guiとfinderのどちらも使用したくない理由はいくつかあります。可能であれば、他のすべてのファイルの拡張保護を維持できるようにしたいと思います(作業を完了した後で再度有効にできない限り、それらをグローバルに無効にしたくない)。
回答: タイムマシンはrshapshotのように機能します。新しいバックアップごとにハードリンクのツリーを作成します。以前のバックアップに既に存在するファイルへのハードリンクは、追加のスペースをほとんど使用しません。ファイルへの最後のハードリンクが削除された場合のみ、ファイルは実際にファイルシステムから削除されます。個々のバックアップ全体を削除しても問題はありません。ハードリンクを削除するだけです。他のバックアップは影響を受けません。しかし、それはtmutilを介して実現できます。保護をバイパスする必要があるかもしれない1つのシナリオは、すべてのバックアップから特定のファイルを削除することです(そして、私がこの投稿に行き着いた理由です)。バックアップディスクがいっぱいです。何ヶ月もバックアップされている非常に大きなファイル(数ギガバイト)があります。それの1つの物理コピーがありますが、そのコピーへのハードリンクを持つ多くのスナップショット。実際にそのファイルを削除するには、すべてのバックアップからハードリンクを削除する必要があります。iノード番号は、同じファイルへのすべてのハードリンクで同じであることに注意してください。% cd /volumes/wd\ 500g\ usb/backups.backupdb/csm-laptop % ls -li */macintosh\ hd/users/csm/vm.img ... 2740350 -rw-r--r--@ 28 csm staff 42949672960 feb 17 16:12 2015-05-08-005636/macintosh hd/users/csm/vm.img 2740350 -rw-r--r--@ 28 csm staff 42949672960 feb 17 16:12 2015-05-08-015812/macintosh hd/users/csm/vm.img 2740350 -rw-r--r--@ 28 csm staff 42949672960 feb 17 16:12 2015-05-08-030036/macintosh hd/users/csm/vm.img 2740350 -rw-r--r--@ 28 csm staff 42949672960 feb 17 16:12 2015-05-08-041307/macintosh hd/users/csm/vm.img 2740350 -rw-r--r--@ 28 csm staff 42949672960 feb 17 16:12 latest/macintosh hd/users/csm/vm.img (最新のものは、最後に日付が付けられたディレクトリへのシンボリックリンクです)% sudo bypass rm -f */macintosh\ hd\users\csm\vm.img ファイルはすべてのバックアップから削除され、スペースが返されます。ファイルが時間とともに変化している場合、各バックアップには完全なコピーがあり、返されるスペースは非常に大きくなります。