Wie kann ich Time Machine-Dateien über die Befehlszeile löschen?


68

Ich möchte mit rm einige Dateien / Verzeichnisse von meiner Time Machine Partition löschen , kann dies jedoch nicht. Ich bin mir ziemlich sicher, dass das Problem mit einer Art von erweiterten Zugriffssteuerungsattributen für Dateien in der Sicherung zusammenhängt, aber ich weiß nicht, wie ich sie überschreiben / deaktivieren soll, damit rm funktioniert. Ein Beispiel für den Fehler, den ich erhalte, ist:

% 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

Es gibt eine Reihe von Gründen, aus denen ich weder die Time Machine-GUI noch den Finder verwenden möchte. Wenn möglich, möchte ich den erweiterten Schutz für alle anderen Dateien beibehalten (ich möchte sie nicht global deaktivieren, es sei denn, ich kann sie nach Abschluss meiner Arbeit wieder aktivieren).


Ich bin näher gekommen. Zuerst musste ich ACLs auf meiner Time Machine-Festplatte deaktivieren. Früher verwendete man dazu fsaclctl, aber Snow Leopard schließt dies nicht ein. Ich habe mir eine Kopie der Binärdatei aus einer älteren OSX-Version geholt und folgendes ausgeführt:% sudo fsaclctl -p / Volumes / tmvol -d Ich habe dann versucht, mit "sudo rm -rf" ein Verzeichnis zu entfernen, stieß aber immer noch auf Probleme mit einige Dateien (obwohl andere gut weggegangen sind). Insbesondere bei Softlinks ist ein Fehler aufgetreten. Sehr eigenartig. Auf der positiven Seite nehmen die Links fast keinen Platz ein. Auf der negativen Seite habe ich noch die Verzeichnisse, die herum haften.
Tim

Es scheint, dass die akzeptierte Antwort ziemlich gefährlich ist, wenn Sie Snapshots oder Ordner in Snapshots wie Ihren löschen rm -r Backups.backupdb/MacBook/Latest/MacBook/somedir. Wenn Sie einverstanden sind, akzeptieren Sie bitte Arnes Antwort.
Arjan

Antworten:


115

Verwenden Sie das Time Machine Safety Net "Bypass" Programm, um "Operation not allowed" Fehler umzugehen :

sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/MacOS/bypass rm -rfv /Volumes/[disk]/Backups.backupdb/[path]

In 10.8 Mountain Lion wurde die Umgehungsstraße in "Helpers" verschoben:

/System/Library/Extensions/TMSafetyNet.kext/Helpers/bypass

In 10.10 Yosemite wurde die Umgehungsstraße hierher verschoben:

/System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass

Beachten Sie beim Löschen bestimmter Snapshots Folgendes: Da Time Machine feste Verknüpfungen verwendet, wirkt sich die Verwendung rm -rvon Ordnern möglicherweise auch auf ältere und neuere Snapshots desselben Computers aus . (Weitere Antworten tmutil deletezum sicheren Löschen eines bestimmten Snapshots finden Sie unter.) Das rmLöschen aller Snapshots für einen einzelnen Computer ist jedoch in Ordnung. Dies wird verwendet rm, um eine bestimmte Datei zu löschen. Dabei wird nur die fest verknüpfte Datei aus den von Ihnen angegebenen Snapshots entfernt, vorausgesetzt, die Datei befindet sich nicht in einem fest verknüpften Verzeichnis, da Sie die Datei dann tatsächlich aus allen entfernen würden diese fest verbundenen Verzeichnisse.


+1 !! Das hat mir geholfen. Ich habe noch nicht einmal die anderen ausprobiert, da dies wie "der richtige Weg" aussah und es mir tatsächlich ermöglichte, das Problem ohne weitere Fragen zu lösen. Vielen Dank!
Tripleee

Ich habe ein Konto erstellt, um dir +1 zu geben. Ich habe nach einer besseren Lösung dafür gesucht, und das war es. Es hatte mich verrückt gemacht. Danke.
CWSpear

3
Genial. Das funktioniert. (obwohl ich die 'v'-Option weglasse, um zu vermeiden, dass ein Eintrag für einige hunderttausend Dateien sudo ...bypass rm -rf /Volumes/...
Brent Faust

6
Dies ist eine äußerst gefährliche Methode zur Verwaltung von Time Machine-Dateien. Time Machine verwendet fest verknüpfte Verzeichnisse, um auf Ordner zu verweisen, die seit der vorherigen Sicherung nicht geändert wurden. Der rmProzess versteht diese jedoch nicht und folgt diesen Links und entfernt Dateien von ihnen. Dies bedeutet, dass Sie möglicherweise Dateien löschen können, die sich auch in älteren und neueren Sicherungen als der von Ihnen ausgewählten befinden, was zu irreparablen Schäden an den Sicherungen führen kann. Die Empfehlung von Arne Stenström zur Verwendung tmutilist bei weitem die überlegene Lösung.
Haravikk

1
Um Haravikks Kommentar ein wenig zu erweitern: Die Verwendung rmfür fest verknüpfte Dateien ist in Ordnung, für fest verknüpfte Ordner jedoch nicht. Kents Antwort erwähnt dasselbe Problem. Und in Was ist der Unix-Befehl zum Erstellen eines Hardlinks zu einem Verzeichnis in OS X? 2010 schrieb jemand für 10.5: "Löschen ist eine andere Geschichte: Wenn Sie wie gewohnt Verzeichnisse löschen, löschen Sie den Inhalt. Sie müssen also die Verknüpfung des Verzeichnisses aufheben: unlink new_hard_link". Verwenden Sie diese Option also nur, um alle Sicherungen (Snapshots) für einen bestimmten Computer zu löschen .
Arjan

26

BLUF (unterste Zeile oben):

sudo tmutil delete snapshot-dir


Verwenden Sie alle ACLs aus einer Ordnerhierarchie entfernen funktioniert nicht auf die Dateien und Ordner in Time Machine Backups.backupdb , wegen des TM Safety Net - Mechanismus und die in dieser beschriebenen Kriterien 318 Tech Journal Post (aber möglicherweise nicht genau , wie beschrieben) .     (Bevor ich dies durch das Nachschlagen des in Eric Ws Antwort erwähnten Sicherheitsnetzes erfuhr (was funktioniert), hatte ich nur einen Ordner getestet, der aus einem Unterordner eines TM-Backups geklont wurde, und dort funktionierte chmod . Aber ich habe versucht, chmod für einen Ordner in einem tatsächlichen zu verwenden.) TM-Backup gibt den Fehler "Vorgang nicht zulässig" aus.)sudo chmod -R -N folder

Mögliche Verwendung:
    Unter Mac OS 10.7+ gibt es einen tmutil- Befehl (den ich nicht ausprobiert habe, da ich immer noch auf Snow Leopard bin). Es hat ein Löschverb , das gemäß der Beschreibung "Snapshots von Backups löschen kann, die nicht vom aktuellen Computer erstellt wurden oder von diesem nicht beansprucht werden" (wobei ein "Snapshot" ein datierter Ordner ist, der ein einzelnes inkrementelles Backup darstellt). Es ist mir nicht klar, ob dies bedeutet, dass keine Snapshots gelöscht werden können, die vom aktuellen Computer erstellt oder von diesem beansprucht werden. (?)


2
Tatsächlich ist tmutil nützlich und ermöglicht das Löschen von Backups ( tmutil delete /Volumes/DISK/Backups.backupdb/HOST/DATE_FOLDER). Sie benötigen jedoch noch Erics Bypass-Trick, um den Ordner "Backups.backupdb" selbst zu löschen.
mivk

Mein OSX 10.8.3 (Mountain Lion) benötigte keinen Bypass. Nur sudo tmutil delete <snapshot-dir>. Die beliebte bypass rmAntwort ist veraltet.
John Mee

Ist es möglich, tmutilnur einige Dateien aus einem Schnappschuss zu löschen? Es hat bei mir nicht geklappt ( Invalid deletion target (error 22)), also bin ich bypassstattdessen mitgegangen.
Robert Tupelo-Schneck

+1 für BLUF. Hast du das von den (total genialen) Manager-Tools bekommen? :)
Olie

Außerdem: Ich finde immer wieder Verweise auf ein Backups.backupdbVerzeichnis, das sich nicht auf meinem Sicherungslaufwerk befindet (eine Time Capsule). Ich habe nur Dinge von der Form MachineName.sparsebundle. Hat sich das Format geändert? Ich versuche, den Befehl zum Löschen von Sicherungen von TM zu verwenden, aber der 99,99% -Fortschrittsbalken bleibt mehrere Stunden lang hängen.
Olie,

12

Eine Warnung zur Verwendung des bypassBefehls zum Entfernen einer alten Sicherung: Wenn die gelöschte Sicherung Ordner enthält, die in früheren oder späteren Sicherungen identisch sind, werden möglicherweise auch Dateien aus früheren oder späteren Sicherungen gelöscht !

Time Machine verwendet nicht nur Hardlinks für unveränderte Dateien, sondern auch Hardlinks für Ordner, in denen überhaupt keine Dateien hinzugefügt, geändert oder gelöscht wurden. Dies führt zu etwas wie:

/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/

Mit den oben genannten Einstellungen ist das Löschen von Dateien /2014-11-06/folder/in Ordnung und wirkt sich nur auf die Sicherung für dieses Datum aus. Die Anzahl der Hardlink-Verweise wird verringert, sodass der " Inode " für file2entfernt wird, aber die Inodes für file1und file3haben aufgrund der späteren Sicherungen immer noch einen Verweiszähler von 1. Daher rm -R /2014-11-06ist auch in Ordnung.

Allerdings, das Entfernen einer Datei von entweder /2014-11-13/folder/, /2014-11-20/folder/oder /2014-11-27/folder/effektiv es aus all diesen drei Ordnern entfernen.

Das Problem ist, dass rm -Res nicht um fest verbundene Ordner geht. Es kehrt nur in einen fest verknüpften Ordner zurück, löscht kühn alle seine Dateien und entfernt dann den leeren Ordner.

Also: Wenn Sie ein altes Backup entfernen, sollten Sie nicht in einen fest verknüpften Ordner zurückkehren und dessen Inhalt löschen. Stattdessen sollte man nur den Hardlink für den Ordner selbst entfernen . Also, anstatt rm -Rzu verwenden , tmutil deletewie erklärt in Arnes Antwort .

Als Nebenwirkung , so scheint es , dass die OS X - unlinkBefehl nicht auf Ordner verwendet werden kann : „nur ein Argument, das nicht ein Verzeichnis sein muss, zugeführt werden kann“ . Die OS X-API kann fest verknüpfte Ordner entfernen , ebenso wie GNU Coreutils , wie sie mit Homebrew installiert wurden .

Um all das zu beweisen, ein Testfall (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

Beachten Sie, dass die Anzahl der Links für jedes Vorkommen 2 beträgt (zweite Spalte). Entfernen wir das erste Vorkommen:

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

Nach dem Aufheben der Verknüpfung einer der Dateien ist die Anzahl der Verknüpfungen bei jedem Auftreten auf 1 gesunken, obwohl die Datei immer noch dreimal angezeigt wird. Noch keine Probleme. Entfernen Sie das erste Vorkommen erneut:

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

Jetzt sind alle weg. Anscheinend wurde die Datei TopSites.plistzuletzt am 06.11.2014 geändert und am 13.11.2014 fest verlinkt, da dann einige andere Dateien zum SafariOrdner hinzugefügt, geändert oder daraus entfernt wurden . Als Nächstes wurde der Inhalt des SafariOrdners in den folgenden beiden Sicherungen nicht geändert, sodass der SafariOrdner am 20.11.2014 und am 27.11.2014 fest mit der vorherigen Sicherung verknüpft war.

In der Tat verwenden die 4 Ordner nur 2 Inodes (erste Spalte):

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//

1
Einige Hintergrundinformationen: Bei Dateien funktionieren harte Links wie erwartet. Es wird nur der feste Link entfernt, den Sie löschen möchten. Gefällt touch file1; ln file1 file2; ln file2 file3; ls -li; rm file2; ls -limir : Entfernt nur einen einzigen festen Link. Aber für Ordner , in Was ist der Unix - Befehl eine Verknüpfung zu einem Verzeichnis in OS X zu erstellen? 2010 schrieb jemand für 10.5: "Löschen ist eine andere Geschichte: Wenn Sie wie gewohnt Verzeichnisse löschen, löschen Sie den Inhalt. Sie müssen also die Verknüpfung des Verzeichnisses aufheben: unlink new_hard_link". Dies ist wahrscheinlich noch gültig.
Arjan

Die Manpage unlink(in 10.6.8) sagt , dass es nicht auf Verzeichnisse verwendet werden kann: When the utility is called as unlink, only one argument, which must not be a directory, may be supplied.
Kent

Hmmm, Rätsel. Noch wichtiger ist Ihre Antwort: Verwenden Sie diese Option nicht [bypass] rm -rfür fest verknüpfte Verzeichnisse. (Aber ich muss Ihnen das nicht erklären.)
Arjan

Ich habe nur ein bisschen mehr experimentiert. Laufen bypass unlink FILEhat die gleiche (unbeabsichtigte?) Konsequenz wie bypass rm FILE. Die identische DATEI wird aus allen Sicherungen entfernt, nicht nur aus dem angegebenen Speicherort. Und unlinkwird NICHT ein Verzeichnis oder mehr als eine Datei als Argument nehmen (10.6.8 Server; aber ich glaube nicht, dass sich dies durch die neueren Betriebssystemversionen geändert hat)
Kent,

Wow, ich bin ziemlich überrascht von Ihrer bypass rm FILEund bypass unlink FILEEntfernen aller identischen Dateien, die nicht übereinstimmt , was man sieht für touch file1; ln file1 file2; ln file2 file3; ls -li; unlink file2; ls -li, noch für touch file1; ln file1 file2; ln file2 file3; ls -li; /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass unlink file2; ls -li. Ich werde niemals etwas aus einem Backup entfernen ...
Arjan

3

Hinweis: Aufgrund des von Eric W erwähnten "TM-Sicherheitsnetzes" funktioniert diese Antwort nicht für den Fall einer Time Machine-Sicherung, auf die sich die Frage speziell bezieht. Für die meisten anderen Fälle sind jedoch die Informationen zum Entfernen von ACLs relevant.


Es ist nicht erforderlich, ACL-Tools zu verwenden, die von einem älteren Betriebssystem kopiert wurden.

Verwenden Sie ls -lediese Option chmod, um ACLs anzuzeigen und zu ändern.

Weitere Informationen finden Sie man chmodunter "ACL-Manipulationsoptionen".

Der Befehl zum Entfernen aller ACLs aus einer Ordnerhierarchie lautet:

chmod -R -N foldername

2

Zeitmaschine funktioniert wie Rshapshot. Für jedes neue Backup wird ein Baum fester Links erstellt. Feste Links zu Dateien, die bereits in einer früheren Sicherung vorhanden waren, belegen nur sehr wenig zusätzlichen Speicherplatz. Erst wenn der letzte feste Link zu einer Datei entfernt wird, wird die Datei tatsächlich aus dem Dateisystem gelöscht.

Das Entfernen eines gesamten einzelnen Backups schadet nicht. Sie entfernen nur harte Links. Keine andere Sicherung ist betroffen. Dies kann aber über tmutil erreicht werden.

Ein Szenario, in dem der Schutz möglicherweise umgangen werden muss, ist das Entfernen einer bestimmten Datei aus allen Sicherungen (und der Grund, warum ich in diesem Beitrag gelandet bin).

Meine Sicherungsdiskette ist voll. Ich habe eine sehr große Datei (viele Gigabyte), die seit Monaten gesichert wurde. Es gibt eine physische Kopie davon, aber viele Schnappschüsse mit festen Links zu dieser Kopie. Um diese Datei tatsächlich loszuwerden, muss ich den festen Link aus jeder Sicherung entfernen.

Beachten Sie, dass die Inode-Nummer für alle festen Links zu derselben Datei gleich ist.

% 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

(Neueste ist nur ein Symlink zum zuletzt datierten Verzeichnis)

% sudo bypass rm -f */Macintosh\ HD\Users\csm\vm.img

Die Datei wird aus allen Sicherungen entfernt und Speicherplatz wird zurückgegeben. Wenn sich die Datei im Laufe der Zeit geändert hat, verfügt jede Sicherung über eine vollständige Kopie, und der zurückgegebene Speicherplatz ist enorm.


Wie bei "Das Entfernen eines gesamten einzelnen Backups schadet nicht. Sie entfernen nur harte Links. Kein anderes Backup ist betroffen." : Wenn sich dies auf Snapshots innerhalb von Backups für eine einzelne Maschine bezieht, ist die (alte) Antwort von Kent unter Verwendung von rm -rmöglicherweise (oder: war) gefährlich. Besser auf Nummer sicher gehen und dafür verwenden tmutil.
Arjan

0

Wenn Sie den Befehl nicht als Benutzer ausführen, der "Eigentümer" der Sicherung ist, fällt es Ihnen schwer, ihn über die Befehlszeile zu löschen. Ich hatte gerade dieses Problem mit einer Migration, und wir mussten das gesamte Time Machine-Backup (1 TB +) löschen und das Laufwerk formatieren, bevor wir darauf zugreifen konnten - und vertrauen Sie mir, ich habe alles versucht, um die Berechtigungen zu überschreiben.


2
sudo sollte mir Zugriff auf alle Dateien gewähren, da ich als Administrator aktiv bin. Ich bin mir ziemlich sicher, dass dies ein ACL-Problem ist, und daran arbeite ich.
Tim,

1
Nic, ein paar Jahre zu spät, aber falls du es verpasst hast: sieh dir Erics Antwort an .
Arjan

@Tim: Diese Behauptung wäre angesichts des unveränderlichen Attributs ( chattr) auf anderen unixoiden Systemen sogar unwahr . Theoretisch bedeutet Root, jedes Sicherheitsnetz zu umgehen .
0xC0000022L

0

Wenn Sie alle Dateien in einem Ordner und nicht nur bestimmte Dateien löschen möchten, können Sie dies erreichen, indem Sie den Ordner zur Ausschlussliste von Time Machine hinzufügen. (Systemeinstellungen -> Time Machine -> Optionen. Ziehen Sie den Ordner hierher.)

Wenn Sie das nächste Mal eine Sicherung durchführen, werden Kopien dieses Ordners aus früheren Sicherungen entfernt.

Wenn Sie dies wirklich von einer CLI aus tun möchten, gibt es einen, wenn auch etwas umständlichen Weg.

  1. Erstellen Sie eine Sicherungskopie von /Library/Preferences/com.apple.TimeMachine.plist
  2. Kopieren Sie /Library/Preferences/com.apple.TimeMachine.plist an eine Stelle, an der Sie damit spielen können.
  3. Cd wohin du es legst.
  4. Führen
    plutil -convert xml1 com.apple.TimeMachine.plist
    Sie dies aus, um es von einer binären Form zu konvertieren.
  5. Öffnen Sie die konvertierte Liste im bevorzugten Texteditor und suchen Sie nach "Skippaths".
  6. Fügen Sie in diesen Abschnitt eine neue Zeile ein, die als formatiert ist <string>/Path/To/Exclude</string>
  7. Speichern und beenden, durch Ausführen zurückkonvertieren
    plutil -convert binary1 com.apple.TimeMachine.plist
  8. Kopieren Sie Ihre bearbeitete Liste zurück in / Library / Preferences /
  9. Starten Sie eine Sicherung, indem Sie ausführen
    /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -auto

Bearbeiten: Wenn Sie Schritt 9 ausführen, werden alle Kopien des neu ausgeschlossenen Ordners aus früheren Sicherungen gelöscht.

Um die Ausnahme zu entfernen, kopieren Sie Ihr Backup zurück in / Library / Preferences.


Ich versuche nicht, ein Verzeichnis auszuschließen. Ich versuche, ein Verzeichnis aus einer vorhandenen Sicherung zu löschen und einige über die Befehlszeile auszuführen. Eigentlich möchte ich nur herausfinden, wie rm in einem Backups.backupdb-Verzeichnis arbeiten kann.
Tim

OK, aus meinen Anweisungen ging möglicherweise nicht hervor, dass der Ordner tatsächlich aus den Sicherungen gelöscht wurde, wenn die obigen Schritte ausgeführt wurden. Siehe meine Bearbeitung. Aber wenn es nicht die Lösung ist, nach der Sie suchen, dann könnten Sie wahrscheinlich immer su - rootund immer rm -rfdie Ordner durchsuchen, aber ich denke, es ist etwas, das man generell vermeiden sollte, wenn man auf diese Weise mit etwas so Kostbarem wie Backups fummelt.
Frost

Wenn Sie es jedoch als Ausschluss hinzufügen, werden alle Kopien von allen Sicherungen gelöscht. Obwohl es sich um eine TimeMachine-Sicherung handelt, stammt sie nicht von der Maschine, auf der ich diese Arbeit mache, und ist daher keine aktive TimeMachine mehr. sudo hat den gleichen Effekt wie "su - root" und dann "rm -rf". Ich bin mir ziemlich sicher, dass dies fehlschlägt, da Apple dem Dateisystem eine Sicherheitsstufe hinzugefügt hat, die über die einfachen * nix-Berechtigungen hinausgeht.
Tim

Das klingt vielleicht dumm, aber ich bin mir nicht ganz sicher, ob das sudoden gleichen Effekt hat wie su - rootauf einem Mac. Ich erinnere mich an eine Gelegenheit, als ich versuchte, etwas zu löschen, sudodas nicht ausreichte, aber sudo - rootden Trick machte.
Frost

3
@Frost- Ich glaube nicht, dass Time Machine so funktioniert, wie Sie es vorschlagen. Ich habe gerade versucht, einen Ordner auszuschließen, dann TM auszuführen, und die älteren Sicherungen dieses Ordners sind noch in TM vorhanden. Oder vielleicht hat sich sein Verhalten geändert, seitdem Sie dies vor fast einem Jahr gepostet haben.
Caffeine Coma

0

lsMithilfe des -@Flags können Sie erweiterte Listenattribute in einer langen Ansicht erstellen. Es werden ACLs aufgelistet, wenn Sie das -eFlag angeben . So können Sie herausfinden, womit Sie es zu tun haben, indem Sie verwenden ls -lea@ DIR.

Nach meinen lokalen Time Machine-Backups sieht es so aus, als würde Time Machine erweiterte Attribute mit Metadaten zu den neuesten und ältesten Snapshots anwenden. Die von den xattrs gespeicherten Daten scheinen eine binäre Liste zu sein. Diese scheinen harmlos.

Time Machine versucht außerdem, Zugriffssteuerungslisten auf bestimmte ihm bekannte Verzeichnisse anzuwenden, z. B. auf Verzeichnisse, die sich in einem Standardbenutzerverzeichnis befinden. Möglicherweise stehen Ihnen zwei Arten von Zugriffssteuerungslisten im Weg: die direkt auf die Datei oder das Verzeichnis angewendeten, die das Löschen verweigern, und die übergeordneten Zugriffssteuerungslisten, die das Löschen von Kindern verweigern.

Leider unterstützt Mac OS X Dienstprogramme des Benutzers nicht liefern getfaclund setfaclspezifiziert durch POSIX.2c ACLs anzuzeigen und zu bearbeiten. Um mit ACLs herumzuspielen, müssen Sie etwas programmieren. Siehe die acl(3)Manpage.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.