Komplettes Verzeichnis mit Unterverzeichnissen löschen?
Komplettes Verzeichnis mit Unterverzeichnissen löschen?
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?
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?
- Teddybear
- Beiträge: 3163
- Registriert: 07.05.2005 13:52:55
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Altomünster
-
Kontaktdaten:
Moin
Diese einfache Frage kannst du dir auch eigentlich selbst beantworten..
Greetz Sascha
Diese einfache Frage kannst du dir auch eigentlich selbst beantworten..
Code: Alles auswählen
man rm
Versuchungen sollte man nachgeben. Wer weiß, ob sie wiederkommen!
Oscar Wilde
Mod-Voice / My Voice
Oscar Wilde
Mod-Voice / My Voice
* 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)
.* 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
a great free and opensource FPS game: http://nexuiz.com
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!
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
* 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: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)
Code: Alles auswählen
$ rm -r ..
rm: Weder ».« noch »..« kann gelöscht werden
Dem ist aber nicht ganz so..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:
Code: Alles auswählen
ls -ald *
Code: Alles auswählen
ls -ald .*
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
a great free and opensource FPS game: http://nexuiz.com
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Wie Joghurt sagt so ist es und das ist gut so den ein
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:
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
Code: Alles auswählen
rm -rf .*
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$
markus
Zuletzt geändert von meandtheshell am 29.08.2006 19:48:12, insgesamt 1-mal geändert.
Hab das grade ausprobiert mitesteel hat geschrieben:Eventuell löscht rm . / .. ja mit -f.. Kann das gerade nicht testen.
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?
-
- Beiträge: 3472
- Registriert: 30.11.2005 10:32:22
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Wald
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 ..
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Stimmt - habe es auch selbst versucht.Spasswolf hat geschrieben:rm -rf .* bleibt aber trotzdem vernünftig und löscht alle hidden Files und löscht nicht rekursiv aufwärts.
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