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

Schon lange her das ich im Terminal ungewollt was gelöscht habe. Viel <<Tab>> drücken hilft immer, und bei rm -rf kurz einmal rübergucken ist ja auch keine Anstrengung..

Verstehe die Problematik nicht, dass das jedes Mal breit getreten wird und Leute vom Terminal verunsichert werden müssen, obwohl das Terminal klare Vorteile bietet in bestimmten Szenarien. Klar, ist mal passiert, aber Scheiße passiert. Es ist auch schon mal ein Betriebssystem nach einem Update nicht mehr hochgekommen, soll ich jetzt keine mehr machen? Flugzeuge stürzen ab, Autos bauen Unfalle, ..
 
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

Ehrlich gesagt halte ich das für etwas übertriebene Vorsicht (hoffentlich werd' ich morgen nicht schon hier rumheulen müssen, weil ich mir das System zerschossen hab ;)).
Aber wenn ich "rm" bzw. "rm -rf" eintippe, dann bewege ich die Datei/den Ordner stets mit Drag&Drop ins Terminal. Somit muss ich mir keine Gedanken um allfällig falsch geschriebenes machen. :)
Was ist eigentlich der genaue Vorteil von "-rf"? Kann ich mit "rm" auch Ordner löschen oder braucht's dazu mindestens das "-r" (um alle Unterverzeichnisse zu löschen)?
 
Wenn jemand offensichtlich nicht weiß, was das "-rf" in dem verwendeten Terminal-Befehl macht und auch nicht weiß, wo er das selbst nachlesen kann ("man rm" lässt grüßen), ist ein solcher Hinweis mMn durchaus angebracht.

Was ist eigentlich der genaue Vorteil von "-rf"? Kann ich mit "rm" auch Ordner löschen oder braucht's dazu mindestens das "-r" (um alle Unterverzeichnisse zu löschen)?

Wurde doch bereits beantwortet.
 
Wenn jemand offensichtlich nicht weiß, was das "-rf" in dem verwendeten Terminal-Befehl macht und auch nicht weiß, wo er das selbst nachlesen kann ("man rm" lässt grüßen), ist ein solcher Hinweis mMn durchaus angebracht.
[...]
Wurde doch bereits beantwortet.

Gut, dann bitte ich dich doch jetzt, da du ja derart verständig bist, mir im Detail zu erklären, was ich unter "erzwungenem rekursivem" Löschen im Sinne der Mathematik/Logik/Informationstechnologie zu verstehen habe, denn mir Greenhorn erschliesst sich das nicht vollständig. :rolleyes:

Danke. :)

(Und ja, ich habe es mehr als einmal gegooglet, aber die Erklärungen sind nicht so gehalten, dass sie schlüssig wären.)
 
Machen wir es doch umgekehrt. Ließ beispielsweise mal "man rm" durch und frage konkret nach was du nicht verstanden hast. Ich denke niemand hier hat Zeit und Lust dir in einem Forum irgendwas en detail zu erklären, wenn du selbst schon schreibst, dass die Ergebnisse, die du im Netz gefunden hast, dir nicht zusagten (ohne aber zu schreiben, welche das sind).
 
Machen wir es doch umgekehrt. Ließ beispielsweise mal "man rm" durch und frage konkret nach was du nicht verstanden hast. Ich denke niemand hier hat Zeit und Lust dir in einem Forum irgendwas en detail zu erklären, wenn du selbst schon schreibst, dass die Ergebnisse, die du im Netz gefunden hast, dir nicht zusagten (ohne aber zu schreiben, welche das sind).

:hamma: Keine Ahnung warum du so unfreundlich drauf bist, aber spar dir das. (Du scheinst selbst keine Ahnung zu haben und dich dabei toll zu fühlen, hier mit inexistenten Wissen zu prahlen.)
Naja, ausserdem: Ich hab sogar eines der Ergebnisse verlinkt. - Und das Terminal liefert auch nicht mehr als eine Beschreibung, nicht jedoch, welcher Befehl für welche Art von Objekt (Datei/Ordner) geeignet ist.
 
Gut, dann bitte ich dich doch jetzt, da du ja derart verständig bist, mir im Detail zu erklären, was ich unter "erzwungenem rekursivem" Löschen im Sinne der Mathematik/Logik/Informationstechnologie zu verstehen habe, denn mir Greenhorn erschliesst sich das nicht vollständig. :rolleyes:

Danke. :)

(Und ja, ich habe es mehr als einmal gegooglet, aber die Erklärungen sind nicht so gehalten, dass sie schlüssig wären.)

Erzwungenes rekursives Löschen heisst, dass er alle Dateien und Ordner inklusive der enthaltenen Unterordner, auf die die Auswahl des Befehls zutrifft ohne Nachfrage löscht. Normalerweise werden Ordner nur auf explizite Nachfrage oder wenn sie leer sind gelöscht.

Der Befehl "rm -rf /" löscht (theoretisch) die ganze Festplatte ohne Nachfrage, daher die angemahnte Vorsicht mit solchen Befehlen.
 
Zuletzt bearbeitet:
Erzwungenes rekursives Löschen heisst, dass er alle Dateien und Ordner inklusive der enthaltenen Unterordner, auf die die Auswahl des Befehls zutrifft ohne Nachfrage löscht. Normalerweise werden Ordner nur auf explizite Nachfrage oder wenn sie leer sind gelöscht.

Der Befehl "rm -rf /" löscht (theoretisch) die ganze Festplatte ohne Nachfrage, daher die angelehnte Vorsicht mit solchen Befehlen.

Danke! :upten: Genau das wollte ich erklärt haben, da mir "Rekursion" in diesem Kontext nix sagte...
 
Und das Terminal liefert auch nicht mehr als eine Beschreibung, nicht jedoch, welcher Befehl für welche Art von Objekt (Datei/Ordner) geeignet ist.

„man rm“ verrät dir hierzu folgendes:

The rm utility attempts to remove the non-directory type files specified on the command line.

-R Attempt to remove the file hierarchy rooted in each file argument.

[...]

-r Equivalent to -R.

„rm“ löscht also nur Dateien, die du als Argument übergibst (keine Verzeichnisse=Ordner), „rm -r“ löscht Dateien und Ordner und im Falle von Ordnern auch dessen Inhalt.

Keine Ahnung warum du so unfreundlich drauf bist, aber spar dir das. (Du scheinst selbst keine Ahnung zu haben und dich dabei toll zu fühlen, hier mit inexistenten Wissen zu prahlen.)

Ich wäre mit solchen Unterstellungen sehr vorsichtig. Das war ein gut gemeinter Rat von mir. Auf konkrete Fragen bekommt man in einem Forum in der Regel viel schneller konkrete (hilfreiche) Antworten, während Fragen wie „Wie funktioniert xy im Detail?“ (wobei xy irgendetwas sehr umfangreiches ist) in der Regel unbeantwortet bleiben, weil niemand Romane schreiben will. Auch Hinweise wie „Ich verstehe Seite abc nicht.“ sind nicht hilfreich, wenn du nicht schreibst was genau du nicht verstehst, welche Formulierung dir unklar ist oder wo dir Erläuterungen fehlen.

PS:

da mir "Rekursion" in diesem Kontext nix sagte...

Dann hätte ich nachgefragt, was damit gemeint ist, anstatt hier immer wieder dieselbe Frage zu stellen, die ja bereits im zweiten Beitrag beantwortet wurde.
 
Normalerweise werden Ordner nur auf explizite Nachfrage oder wenn sie leer sind gelöscht.
eben nicht. siehe "alias rm".

und wie kommt ihr denn jetzt auf erzwungenes löschen, das gibt es nicht. siehe "man rm, option -f" und nochmal #9.
-f und -i sind optionen zur interaktion, sprich nachfrage und -f (wie force) übersteuert ein evtl. vorhandenes -i.

ich komme zu dem schluss, dass die englische man page, bzw. generell englisch, das problem ist.
 
Zuletzt bearbeitet:
Also nochmal:

"rm" dient zum Löschen von Dateien, die man explizit angibt. Eine Nachfrage gibt es dabei nur, wenn man für die Datei nicht die notwendigen Schreibrechte besitzt.

Zum Löschen von leeren Verzeichnissen gibt es den Befehl "rmdir".

Will man nicht-leere Verzeichnisse löschen, muss man wieder "rm" bemühen, mit der Option "-r", die alle Dateien in allen Unterverzeichnissen und die leeren Unterverzeichnisse löscht. Auch hier gibt es keine Nachfrage, wenn man die notwendigen Rechte besitzt. Will man für jedes gelöschte Verzeichnis gewarnt werden, fügt man die Option "-i" hinzu.

Die Option "-f" unterdrückt die Nachfrage, die "rm" generierte wenn der Nutzer nicht die notwendigen Schreibrechte zum Löschen der Datei hat und versucht diese trotzdem zu löschen. Ebenso werden dabei Nachfragen unterdrückt, die man die die Option "-i" (siehe voriger Punkt) selbst angefordert hat.
 
Zuletzt bearbeitet:
4 Seiten (bisher) darüber wie man unter OS X Dateien löscht. :crack:

iu.jpeg
 
"rm" dient zum Löschen von Dateien, die man explizit angibt. Eine Nachfrage gibt es dabei nur, wenn man für die Datei nicht die notwendigen Schreibrechte besitzt.

Als Anmerkung: Falls einem das nun irgendwie seltsam vorkommt, effektiv relevant für das Löschen einer Datei sind die Berechtigungen für das Verzeichnis, in welcher sich die Datei befindet (denn dort wird die Datei gelöscht).

Hat man in diesem Verzeichnis keine Schreibrechte, so kann man die Datei nicht löschen - auch nicht auf Nachfrage und auch nicht mit -f.

Die Ausnahme, wie immer unter UNIX, ist Gott, äh root...
 
auch nicht korrekt. nur die berechtigung im verzeichnis der datei ist fürs löschen relevant (steht korrekt in #35).
du kannst immer eine datei mit z.b. uid:gid 0:0 (gemeinhin als root bekannt) löschen, solange du im entsprechenden verzeichnis schreibrechte hast.
 
Zuletzt bearbeitet:
Zurück
Oben Unten