Re: SL 9.3, Loeschen eines Verzeichnisses
-----Ursprüngliche Nachricht----- Von: Thomas Mack
Gesendet: 26.05.06 08:47:26 An: suse-linux@suse.com Betreff: Re: SL 9.3, Loeschen eines Verzeichnisses
Am Freitag, 26. Mai 2006 08:24 schrieb Bernd Kloss:
Hallo,
auf dem Server liegt als öffentliches Samba-Share ein Verzeichnis /daten/temporaer. Alle User dürfen dort Daten ablegen. Per crontab wird dort täglich alles von admin gelöscht:
Nimm lieber root...
rm -rf /daten/temporaer/*
Jetzt hat ein User dort von Windows98SE ein Verzeichnis angelegt:
A- PROJEKT ABC MAI06
Dieses Verzeichnis lässt sich nicht löschen. drwsrwsrwt Im mc liefert der Eintrag 47777 Ein chmod liefert "missing operand after -".
mack@is38 ~/tmp 122 > mkdir "A- PROJEKT ABC MAI06" mack@is38 ~/tmp 123 > chmod 4777 A-\ PROJEKT\ ABC\ MAI06 mack@is38 ~/tmp 124 > chmod g+s A-\ PROJEKT\ ABC\ MAI06 mack@is38 ~/tmp 126 > chmod +t A-\ PROJEKT\ ABC\ MAI06 mack@is38 ~/tmp 127 > ll insgesamt 1 drwsrwsrwt 2 mack users 512 2006-05-26 08:34 A- PROJEKT ABC MAI06/ mack@is38 ~/tmp 128 > \rm -r * mack@is38 ~/tmp 129 > ll insgesamt 0 mack@is38 ~/tmp 129 >
Leerzeichen werden im Regelfall als Trennzeichen interpretiert. Um das zu verhindern, kannst Du doppelte oder einfache Häkchen darumsetzen oder einen Backslash davor.
Bei rm -r * oder ähnlich wird der '*' erst durch die Shell interpretiert, und dann durch den kompletten Dateinamen ersetzt - inkl. Leerzeichen etc.. Kein Problem also.
Vielleicht sind im Dateinamen noch ein paar "hinterhältige" nicht sichtbare Zeichen drin, die ein merkwürdiges Verhalten generieren.
Ein:
ls -l /daten/temporaer/ | od -c gibt Aufschluß.
Thomas Mack
Danke für die Antwort. Den admin habe ich genommen, weil er weniger Rechte als root hat. Schien mir sicherer (oder ist das kein Problem?). Bleibt wohl die einzige Möglichkeit, denn ich kann ja nicht kontrollieren, wer welche Dateinamen im Verlauf eines Tages nimmt. Eine Frage zu oben: welche Rechte hatte mack beim \rm -r * - Befehl? Welche Bedeutung hat der Backslash vor rm. Wenn man den Befehl als root ausführt, werden die \ doch vor den Leerzeichen eingesetzt. Viele Grüße Bernd Kloss ______________________________________________________________ Verschicken Sie romantische, coole und witzige Bilder per SMS! Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
Den admin habe ich genommen, weil er weniger Rechte als root hat. Schien mir sicherer (oder ist das kein Problem?).
Wenn Du alles löschen willst, brauchst Du möglicherweise mehr Rechte. Es ist kein Problem, rm als root laufen zu lassen...
Bleibt wohl die einzige Möglichkeit, denn ich kann ja nicht kontrollieren, wer welche Dateinamen im Verlauf eines Tages nimmt.
Eine Frage zu oben: welche Rechte hatte mack beim \rm -r * - Befehl?
?
Welche Bedeutung hat der Backslash vor rm.
Der nimmt das "richtige" rm, jenseits aller Aliase oder was es sonst noch geben mag. rm -r * fragt bei mir immer nochmal nach, ein \rm benutzt das richtige Verhalten... Du kannst auch den vollständigen Pfad vor das rm schreiben, dann hat das einen ähnlichen Effekt.
Wenn man den Befehl als root ausführt, werden die \ doch vor den Leerzeichen eingesetzt.
Ja, das ist eine Eigenschaft der Shell, die bei "file completion" die Dateinamen "richtig" ergänzt. War aber nicht immer so, hat sich sinnvollerweise durchgesetzt... Thomas
participants (2)
-
Bernd Kloss
-
Thomas Mack