Komplettes Verzeichnis mit Unterverzeichnissen löschen?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
TheToast
Beiträge: 33
Registriert: 22.04.2006 12:12:17
Kontaktdaten:

Komplettes Verzeichnis mit Unterverzeichnissen löschen?

Beitrag von TheToast » 29.08.2006 16:05:50

Hi,

ich hatte mal auf irgendeiner Seite gelsen, dass mit "rm -r *" alles gelöscht wird, aber wegen des -r auch die utnerverzeichnisse, also auch ".." und all dadrunter und so weiter.
Das hatte ich nur mnal vor ewigkeiten gelesen wills aber auch nicht ausprobieren, stimmt das?

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Beitrag von Teddybear » 29.08.2006 16:08:03

Moin

Diese einfache Frage kannst du dir auch eigentlich selbst beantworten..

Code: Alles auswählen

man rm
Greetz Sascha
Versuchungen sollte man nachgeben. Wer weiß, ob sie wiederkommen!
Oscar Wilde

Mod-Voice / My Voice

TheToast
Beiträge: 33
Registriert: 22.04.2006 12:12:17
Kontaktdaten:

Beitrag von TheToast » 29.08.2006 16:28:44

erm, ich meinte, wenn ich mit "*" alles lösche, wirden auch die darüber UND darunter liegenden Verzeichnisse gelöscht? Also bin ich nahc dem Befehl mein System los?

ajuch
Beiträge: 13
Registriert: 06.08.2006 16:02:37
Kontaktdaten:

Beitrag von ajuch » 29.08.2006 16:33:11

TheToast hat geschrieben:erm, ich meinte, wenn ich mit "*" alles lösche, wirden auch die darüber UND darunter liegenden Verzeichnisse gelöscht? Also bin ich nahc dem Befehl mein System los?
Ich verwende regelmäßig rm -r um Verzeichnisse zu löschen. Aber mein System ist nach wie vor vorhanden

Benutzeravatar
esteel
Beiträge: 242
Registriert: 23.07.2002 11:06:25
Kontaktdaten:

Beitrag von esteel » 29.08.2006 16:38:32

* ist 'harmlos'.
.* wird dagegen versuchen auch höher gelegene Verzeichnisse zu löschen da .* auch auf .. zutrifft. (also vorsichtig sein wenn man alle Dateien löschen will die mit . anfangen)
i support free software: http://www.fsfe.org/en/fellows/esteel
a great free and opensource FPS game: http://nexuiz.com

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 29.08.2006 16:42:55

Ich verwende meistens ein

Code: Alles auswählen

rm -Rf
-f, --force
Ignorieren nicht vorhandener Dateien, keine Nachfragen.

-r, -R, --recursive
Rekursives Entfernen der Inhalte von Verzeichnissen.
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 29.08.2006 17:28:10

esteel hat geschrieben:* ist 'harmlos'.
.* wird dagegen versuchen auch höher gelegene Verzeichnisse zu löschen da .* auch auf .. zutrifft. (also vorsichtig sein wenn man alle Dateien löschen will die mit . anfangen)
* steht doch für beliebige Zeichenfolgen, das heisst * schliesst auch .* mit ein. Probiert man das ganze aber mal aus, sieht man das es kein Problem gibt:

Code: Alles auswählen

$ rm -r ..
rm: Weder ».« noch »..« kann gelöscht werden

Benutzeravatar
esteel
Beiträge: 242
Registriert: 23.07.2002 11:06:25
Kontaktdaten:

Beitrag von esteel » 29.08.2006 18:36:50

Spasswolf hat geschrieben:* steht doch für beliebige Zeichenfolgen, das heisst * schliesst auch .* mit ein. Probiert man das ganze aber mal aus, sieht man das es kein Problem gibt:
Dem ist aber nicht ganz so..

Code: Alles auswählen

ls -ald *
vs

Code: Alles auswählen

ls -ald .*
Sollte den Unterschied zeigen.

Eventuell löscht rm . / .. ja mit -f.. Kann das gerade nicht testen.
i support free software: http://www.fsfe.org/en/fellows/esteel
a great free and opensource FPS game: http://nexuiz.com

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 29.08.2006 19:23:06

Spasswolf hat geschrieben:* steht doch für beliebige Zeichenfolgen, das heisst * schliesst auch .* mit ein.
Nein, tut es nicht.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 29.08.2006 19:34:17

Wie Joghurt sagt so ist es und das ist gut so den ein

Code: Alles auswählen

rm -rf .*
macht nicht das was man vermuten würde (löschen aller hidden files). Da .. auch von .* gematched wird löscht es auch rekursiv aufwärts.

Weil ich es oben gesehen habe. Sehen wir uns die Ausgabe von ls -la auf einem POSIX System (hier DebianGNU/Linux) kurz an:

Code: Alles auswählen

markusgattol@pc1:~/work$ ls -la
total 48
drwxr-xr-x  5 markusgattol markusgattol  4096 2006-08-19 21:44 .
drwxr-xr-x 64 markusgattol markusgattol 32768 2006-08-29 10:36 ..
drwxr-xr-x 23 markusgattol markusgattol  4096 2006-08-21 15:37 original
drwxr-xr-x  5 markusgattol markusgattol  4096 2006-08-21 17:47 repos
drwxr-xr-x  5 markusgattol markusgattol  4096 2006-08-21 17:49 w_c
markusgattol@pc1:~/work$
Oben wurde der Begriff "Unterverzeichnis" in Zusammenhang mit ".." erwähnt. Das ist falsch. Ein ".." bezeichnet das parentdirectory im directory tree NICHT das/ein subdirectory. Ein "." das aktuelle Arbeitsverzeichnis.

markus
Zuletzt geändert von meandtheshell am 29.08.2006 19:48:12, insgesamt 1-mal geändert.

Benutzeravatar
frosch
Beiträge: 137
Registriert: 20.08.2005 02:59:24

Beitrag von frosch » 29.08.2006 19:46:44

esteel hat geschrieben:Eventuell löscht rm . / .. ja mit -f.. Kann das gerade nicht testen.
Hab das grade ausprobiert mit

Code: Alles auswählen

rm -rf .*

.. oder . wurden nicht gelöscht, auch nicht als root.
Es kam die gleiche Fehlermeldung wie bei Spasswolf.

Aber kann man sich auf dieses Verhalten verlassen?

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 29.08.2006 20:39:02

Was das . und .* angeht hat Joghurt recht. rm -rf .* bleibt aber trotzdem vernünftig und löscht alle hidden Files und löscht nicht rekursiv aufwärts.

Code: Alles auswählen

$ ls -la
insgesamt 9
drwxr-xr-x  2 bert bert  144 29. Aug 20:40 .
drwxr-xr-x 76 bert root 8688 29. Aug 20:40 ..
-rw-r--r--  1 bert bert    0 29. Aug 20:40 .a
-rw-r--r--  1 bert bert    0 29. Aug 20:40 .b
-rw-r--r--  1 bert bert    0 29. Aug 20:40 .c

$ rm -rf .*

$ ls -la
insgesamt 9
drwxr-xr-x  2 bert bert   48 29. Aug 20:44 .
drwxr-xr-x 76 bert root 8688 29. Aug 20:40 ..


Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 29.08.2006 21:34:07

Spasswolf hat geschrieben:rm -rf .* bleibt aber trotzdem vernünftig und löscht alle hidden Files und löscht nicht rekursiv aufwärts.
Stimmt - habe es auch selbst versucht.

Das war einmal anders, da wurde so weit nach oben gelöscht wie die Permissions des rm prozesses gereicht haben ... als root abgesetzt war es der Tod für ein *nix. So wie es jetzt ist, ist es besser/sicherer.

markus

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.08.2006 08:30:24

Dieses Verhalten ist meiner Meinung nach auch logischer.

Ein rm -Rf .* soll doch nur alle hidden files löschen und nicht alle höheren Verzeichnisse. Wie meandtheshell auch schon sagte, spielt natürlich auch der Sicherheitsaspekt hier eine wichtige Rolle.
Oh, yeah!

Antworten