Löschen in OS X - Wie unterscheiden sich Trash, "rm" & "rm -rf"?

iPhill

iPhill

Aktives Mitglied
Thread Starter
Dabei seit
26.02.2011
Beiträge
9.955
Reaktionspunkte
4.001
Hallo beisammen!

Meine Frage steht eigentlich schon oben im Titel, und zwar würde ich gerne von euch wissen, wie sich die verschiedenen Arten von Löschvorgängen unter OS X unterscheiden.
Zwar werde ich mittels Google relativ schnell fündig, wenn es darum geht, die Kürzel erklärt zu haben, allerdings werd ich aus diesen Erklärungen dann nicht ganz schlau.
Der klassische Fall: Ich habe eine Datei im Papierkorb, die sich einfach nicht löschen lässt, da sie anscheinend "in Verwendung" ist, meist handelt es sich dabei um .plist-Dateien. Wenn ich dann aber das Terminal starte, dort "rm -rf Dateinamen" eingebe & Enter drücke, dann ist die Datei innert Sekunden weg.
Ich will mir mit dem Terminal einfach nicht das System zerschiessen (was nicht besonders schwierig zu sein scheint).

Daher: Wie löschen ich eine Datei/Ordner Risikofrei? So wie bisher, Terminal "rm -rf Dateinamen"? Mit dem "rm" Befehl ohne "-rf"? Ganz anders?

Danke euch Experten!! :)
iPhill
 
Trash verschiebt die Datei einfach in eine Art speziellen Ordner. Gelöscht wird da noch nix.
Der Ordner befindet sich in deinem Homeverzeichnis und heisst .Trash (der Punkt versteckt das Verzeichnis)

rm löscht eine Datei direkt, die lässt sich also nicht mehr so einfach wieder herstellen (ausser z.B. über ein Backup).

rm -r löscht rekursiv, das heisst auch in allen Unterverzeichnissen. Bei einer einzelnen Datei macht das keinen Unterschied.
rm -f steht für "force" - damit werden sämtlichen Rückfragen unterbunden (die Shell geht also davon aus, dass du weisst, was du tust...)

Wenn eine Datei noch in Verwendung ist, dann wäre die "saubere" Lösung z.B. ein Reboot, falls das möglich ist.
 
  • Gefällt mir
Reaktionen: iPhill
Der Papierkorb dürfte die Methode mit dem geringsten Risiko sein.

Im terminal lässt sich viel Unsinn anstellen - besonders mit -f.
 
Derart störrische Dateien lassen sich übrigens auch aus dem Papierkorb löschen, wenn man den Papierkorb "sicher löscht". Man sollte sich allerdings hüten das so zu machen, wenn da mehrere GB an Daten im Papierkorb liegen, weil das dann doch sehr lange dauern kann. In dem Fall einfach den Papierkorb normal leeren und die unlöschbaren anschliesend mit "sicher löschen" behandeln.

Der Trash-Ordner, den du übrigens vom Finder oder Dock angezeigt bekommst ist übrigens nur ein virtueller Ordner. Er fasst diverse echte .Trash-Ordner zusammen: dein User-Trash und die Trash-Ordner von allen gemounteten Volumes (allerdings keine Netzwerk-Volumes).
 
Trash verschiebt die Datei einfach in eine Art speziellen Ordner. Gelöscht wird da noch nix.
Der Ordner befindet sich in deinem Homeverzeichnis und heisst .Trash (der Punkt versteckt das Verzeichnis)

rm löscht eine Datei direkt, die lässt sich also nicht mehr so einfach wieder herstellen (ausser z.B. über ein Backup).

rm -r löscht rekursiv, das heisst auch in allen Unterverzeichnissen. Bei einer einzelnen Datei macht das keinen Unterschied.
rm -f steht für "force" - damit werden sämtlichen Rückfragen unterbunden (die Shell geht also davon aus, dass du weisst, was du tust...)

Wenn eine Datei noch in Verwendung ist, dann wäre die "saubere" Lösung z.B. ein Reboot, falls das möglich ist.

Danke dir für die ausführliche Erklärung! :) Das heisst also, -r ergibt insbesondere dann einen Sinn, wenn ein ganzer Ordner gelöscht wird? Und -f beseitigt eben die "störrischen" Dateien?
Das heisst dann wohl: Terminal öffnen, rm -rf und die Datei/den Ordner mittels Drag&Drop dahinter setzen. Enter.
 
Derart störrische Dateien lassen sich übrigens auch aus dem Papierkorb löschen, wenn man den Papierkorb "sicher löscht". [...]

Die Option gibt's aber gar nicht mehr :rolleyes: ... vermutlich wegen der SSD-Laufwerke.
 
grundsätzlich ja. Wenn Du -rf nutzt solltest du aber wirklich wissen was du tust.

Warum willst du denn unbedingt terminal zum löschen nutzen? Was spricht gegen den Papierkorb?
 
Der klassische Fall: Ich habe eine Datei im Papierkorb, die sich einfach nicht löschen lässt, da sie anscheinend "in Verwendung" ist, meist handelt es sich dabei um .plist-Dateien. Wenn ich dann aber das Terminal starte, dort "rm -rf Dateinamen" eingebe & Enter drücke, dann ist die Datei innert Sekunden weg.
Ich will mir mit dem Terminal einfach nicht das System zerschiessen (was nicht besonders schwierig zu sein scheint).
Genau das tut jedoch rm -rf - es löscht ohne Rücksicht auf Verluste, während OS X Dich auf ein Problem hinweist.
Wenn sowas auftritt - Neustart und dann kannst Du sie löschen
 
Und -f beseitigt eben die "störrischen" Dateien?
nein, weil:
rm -f steht für "force" - damit werden sämtlichen Rückfragen unterbunden
das erzwungene gegenteil von -f wäre -i (interactive), damit wirst du für jede datei gefragt und must mit y|n/return bestätigen.

am einfachsten macht man sich vom trash-löschen einen alias, damit geht dann auch nix daneben.
Code:
alias rmt='rm -rfv ~/.Trash/* /Volumes/av/.Trashes/$UID/*'

jedesmal neustarten, weil das f**k-osx wieder dateien festkrallt, nö. dann halt mit lsof nachschauen, was da draufsitzt und killen.
 
Zuletzt bearbeitet:
und sei bitte vorsichtig beim löschen, nicht dass du den Trash ordner selber löschst.

übrigens wäre es eleganter mal mit lsof (list open files) zu gucken, was die datei denn offen hat bzw ob diese wirklich noch geöffnet.
probier mal
lsof|grep Dateiname
 
Die Option gibt's aber gar nicht mehr :rolleyes: ... vermutlich wegen der SSD-Laufwerke.

Wenn Du "Alt" gedrückt hält, verschwinden die Punkte hinter "Finder" -> "Papierkorb entleeren" und man hat das "sichere" Löschen von blockierten Dateien wieder zurück. Ich habe es noch nicht mit grösseren Dateien probiert, glaube aber, es ist eher ein "rm -f" (also Unterdrücken von Nachfragen / Warnungen) als ein Überschreiben, wie früher. Praktisch um nicht für jedes Pdf, das man in der Vorschau oder auch nur der Finder-Preview angeschaut und dann gelöscht hat, den Rechner neu starten zu müssen.
 
  • Gefällt mir
Reaktionen: iPhill
Die Option gibt's aber gar nicht mehr :rolleyes: ... vermutlich wegen der SSD-Laufwerke.
Doof nur, wenn man von normale Platten sicher löschen möchte. ;)

Zum Finder kann ich nicht viel sagen. Ich benutze seit Jahren nur den Path Finder und bei dem gibt es die Option noch.
 
Warum ich mit dem Terminal löschen will? Weil ich das Löschen eben auch dann erzwingen will, wenn der Computer einen "Neustart voraussetzt", um das mit den normalen Mitteln (Papierkorb) zu bewerkstelligen. Dabei betrifft dieses Vorhaben grundsätzlich nur einzelne Dateien, bei denen ich genau weiss, worum es sich handelt und die ich guten Gewissens verbannen kann. Allerdings möchte ich dann auch wirklich ausschliesslich besagte Dateien und nicht etwa Systembestandteile tangieren.
Wenn aber "rm -rf Dateiort/Ordnerort" zuverlässig funktioniert, dann ist mir damit schon gedient. :)
 
Praktisch um nicht für jedes Pdf, das man in der Vorschau oder auch nur der Finder-Preview angeschaut und dann gelöscht hat, den Rechner neu starten zu müssen.
Die Vorschau nochmal zu öffnen und wieder explizit zu beenden kann auch helfen. Seit der Einführung von "Automatic Termination" läuft ja oft der Prozess noch, obwohl in der OS-X-Oberfläche so getan wird als wäre das Programm beendet, nachdem das letzte Fenster geschlossen und zu einem anderen Programm gewechselt worden ist.
 
Wenn aber "rm -rf Dateiort/Ordnerort" zuverlässig funktioniert, dann ist mir damit schon gedient.

Du solltest dabei nur sehr vorsichtig sein, denn der Befehl kann bei Fehleingaben oder unsachgemäßen Gebrauch sehr viel Schaden anrichten.

Wenn du beispielsweise mit folgendem Befehl eine Datei im Papierkorb löschen willst:

Code:
rm -rf ~/.Trash/Datei.txt

kann ein Leerzeichen an der falschen Stelle mal eben dein gesamtes home-directory löschen:

Code:
rm -rf ~/ .Trash/Datei.txt
 
Hatte es zwar schon länger nicht aber wenn sich eine Datei gegen das Ausleeren des Papierkorbs gewehrt hat dann klappte das immer problemlos übers Terminal. Terminal öffnen -> "rm " tippen und die Datei aus dem Papierkorb ins Terminalfenster ziehen (drag&drop). So landet der exakte Pfad/Name im Terminal. Zusätzliche Attribute wie "-rf" musste ich nie verwenden.
 
mit einem alias, wie in #9, muss man weder dateien ziehen, noch aufpassen, ob man sein home löscht.
 
Naja, die Alias-Sache finde ich doch deutlich schwieriger als "rm " zu tippen und die bockige Datei reinzuziehen. :noplan:

Mal abgesehen davon, dass ich keine Ahnung habe was die Zeile denn genau macht im Gegensatz zu einem simplen "rm Dateiname".
 
Seit der Einführung von "Automatic Termination" läuft ja oft der Prozess noch, obwohl in der OS-X-Oberfläche so getan wird als wäre das Programm beendet, nachdem das letzte Fenster geschlossen und zu einem anderen Programm gewechselt worden ist.
Nervig ist ja auch, daß das Auswerfen von Laufwerken unfassbar schlecht geworden ist, spätestens seit 10.11. Man steckt mal kurz ein Laufwerk dran, um mal kurz zu was zu gucken, und man bekommt es ums Verrecken nicht mehr ausgeworfen, bzw. es dauert ewig bis es mal klappt (nach 5-10min hab ich die Faxen meist dicke und mach einen eject force im Terminal oder reiße das Kabel direkt wütend raus). Aber ob es am Automatic Termination liegt… ich vermute mal den elenden Spotlight-Indexer als Schuldigen.
 
Naja, die Alias-Sache finde ich doch deutlich schwieriger als "rm " zu tippen und die bockige Datei reinzuziehen. :noplan:

Mal abgesehen davon, dass ich keine Ahnung habe was die Zeile denn genau macht im Gegensatz zu einem simplen "rm Dateiname".
aumiau, ein alias wird einmal persistent in die ~/.bash_aliases eingetragen, dann braucht man, im fall #9, nur noch rmt+enter tippen. kürzer geht's kaum, um sämtliche trashes, ohne .-files, zu löschen.

was die zeile macht, steht ja drin. wer das nicht checkt, sollte es aber lassen.
 
Zurück
Oben Unten