rm -r * auf einem debian

mi2g

Lieutenant
Registriert
Apr. 2003
Beiträge
1.021
Hallo zusammen

Bei meinem debian muss ich von Zeit zu Zeit ein Verzeichnis leeren.
Bis jetzt habe ich eigentlich immer in das Verzeichnis gewechselt und ein rm -r * ausgeführt.
Falls ich jetzt mal einen Fehler machen würde, und ich würde das eine Stufe weiter oben ausführen. Wäre alles weg.. :/

Was ich jetzt gemacht habe, ist habe ein kleines Script gemacht (.sh) und in dem Script führe ich das ganze aus.
Code:
cd /downloads
rm -r *

Also sehr sehr einfach :)

Meine Frage:
Könnte es sein, dass mal bei dem Script das cd nicht funktioniert? Oder kann ich mich darauf blind verlassen?

Ich möchte nicht, dass alle meine Daten auf diesem Server weg sind. Deswegen diese dumme / kleine Frage :)

Danke & Gruss
 
Warum dann nicht einfach "rm -r /downloads/*"?

Das sollte meiner Meinung nach immer das richtige tun.
 
Zuletzt bearbeitet:
Ja, es kann passierren, dass das "cd" nicht funktioniert. Wichtig ist, aus welchem Verzeichnis das Skript gestartet wird. Besitzt dieses Verzteichnis keinen Unterordner "Downsloads", so wird auch nicht dorthin gewechselt und es geht einiges verloren.

Mfg Kae

EDIT: @Über mir: Ja, das wäre die bessere Wahl.
EDIT2: Wenn du das ganze eh regelmäßig machst, dann kannst du dafür auch einen cronjob anlegen und das ganze automatisch erledigen lassen. KLICK
 
Zuletzt bearbeitet:
Kannst doch auch prüfen, ob du im Verzeichnis stehts, bevor du löscht.
Aber die Idee von Arzaiel ist schon deutlich besser!

Und alles ist nur weg, wenn du root bist ;)
Sonst nur alles was "dir" gehört.
 
Nur mal so:
Ein / am Anfang des Pfades bedeutet immer, dass vom Wurzelverzeichnis des Systems ausgegangen wird.
Ich glaube nicht, dass du einen Ordner "downloads" im Wurzelverzeichnis hast.

Unterverzeichnisse vom aktuellen Arbeitsverzeichnis spricht man entweder mit ./Verzeichnis oder direkt mit Verzeichnis an.
 
Arzaiel und IMars haben schon das richtige gesagt. Schreib dir lieber ein Script welches "rm -r /downloads/*" ausführt. Vorausgesetzt natürlich, dein Verzeichnis befindet sich genau dort.

Gruß, Domi
 
KaeTuuN schrieb:
Ja, es kann passierren, dass das "cd" nicht funktioniert. Wichtig ist, aus welchem Verzeichnis das Skript gestartet wird.

Nee, wichtig ist nur, dass das Verzeichnis existiert, da absolut. Die Existenz könnte man prüfen, aber die vorgestellte Lösung ist kürzer und IMHO besser.
 
mi2g schrieb:
Hallo zusammen

Bei meinem debian muss ich von Zeit zu Zeit ein Verzeichnis leeren.
Bis jetzt habe ich eigentlich immer in das Verzeichnis gewechselt und ein rm -r * ausgeführt.
Falls ich jetzt mal einen Fehler machen würde, und ich würde das eine Stufe weiter oben ausführen. Wäre alles weg.. :/

Was ich jetzt gemacht habe, ist habe ein kleines Script gemacht (.sh) und in dem Script führe ich das ganze aus.
Code:
cd /downloads
rm -r *

Also sehr sehr einfach :)

Meine Frage:
Könnte es sein, dass mal bei dem Script das cd nicht funktioniert? Oder kann ich mich darauf blind verlassen?

Ich möchte nicht, dass alle meine Daten auf diesem Server weg sind. Deswegen diese dumme / kleine Frage :)

Danke & Gruss

gehört das /schon vor downloads? Kenn keinen Ordner der im Rootverzeichnis ist der so heißt^^ Falls du wirklich sichergehen willst, würde ich das cd weglassen und den absoluten Pfad angeben.
 
Alternativ geht auch "cd /downloads && rm -f *"

Das && führt den zweiten Befehl nur aus, wenn der erste Erfolgreich war. Erfolgreich heißt Returncode ($?) gleich = 0. Ansonsten wird der zweite Befehl ignoriert.

Ein einfaches & kann aber ganz böse enden. Dann würde der CD im Hintergrund laufen und der RM sofort ausgeführt....
 
Benutze einen absoluten Pfad anstatt eines relativen:

Code:
cd /home/mi2g/downloads
rm -r *

cd home ist relativ, also vom Verzeichnis abhängig, in dem du dich gerade befindest. Steht ein Slash am Anfang der Pfadangabe, ist es dagegen eine absolute Pfadangabe. Das hat Caedus schon gesagt, nur anders formuliert, meinte aber das gleiche.
 
ich würde einfach ein 'rm -rf ~/Downloads/*' machen ... also den korrekten Pfad dort angeben?
Warum dorthin wechseln und sicherstellen, dass er das auch gemacht hat?
Das ~ kann man bei einem festen User (Falls man das Skript mal mit einem anderen User ausgeführt werden könnte und man das nicht möchte) auch festsetzen. Bei einem Cronjob kann man den User, mit dem es ausgeführt werden soll ja auch mitgeben.
 
Arzaiel schrieb:
Warum dann nicht einfach "rm -r /downloads/*"?

Das sollte meiner Meinung nach immer das richtige tun.

Super. Ja so ist besser. danke dir.

Danke auch den anderen.

Ich habe mir ein link ins root gelegt für den downloads Ordner.. Deswegen diese Struktur.
 
Zurück
Oben