[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Befehl rm umbenennen ohne Root-Rechte



On Sat, Nov 18, 2006 at 03:49:16PM +0100, Christoph Grzeschik wrote:
> Mein Skript zum Verschieben von Dateien in den Papierkorb lautet:
> 
> #!/bin/bash
> 
> mv $1 ~/trash
> 
> Das Problem ist wenn ich jetzt Dateien "löschen" will in deren Dateiname 
> ein Leerzeichen ist dann gibt das Probleme. Beispiel:
> 
> rm Ein toller Film.avi
> mv: Aufruf von stat für ,,Ein" nicht möglich: Datei oder Verzeichnis 
> nicht gefunden
> mv: Aufruf von stat für ,,toller" nicht möglich: Datei oder Verzeichnis 
> nicht gefunden
> mv: Aufruf von stat für ,,Film.avi" nicht möglich: Datei oder 
> Verzeichnis nicht gefunden
> 
> 
> Was muss ich da machen, damit das funktioniert?

Hallo Christoph!

Aufruf mit

rm 'Ein toller Film.avi'

oder

rm "Ein toller Film.avi"

oder

rm Ein\ toller\ Film.avi

Du könntest, wenn du bash auch als interaktive
shell verwendest, auch eine shell funktion namens
rm in der Datei ~/.bashrc definieren.  Diesen
Funktionen kann man beim Aufruf auch Parameter
übergeben, wie den shell scripts.  Der Aufruf der
shell Funktion dürfte wesentlich effizienter sein,
als der Aufruf einer externen Datei, selbst, wenn
eine solche schon gehasht ist, aber für den
Benutzer ist die Differenz dennoch meist
unmerklich klein, weil sie wohl gegenüber der
Tippgeschwindigkeit vernachlässigbar klein ist.

Falls die bash im script nach Ersetzen des
Positional Parameters nochmal ein word splitting
durchführt und damit den einen Parameter aus $1
wieder an den Leerzeichen - oder anderen
whitespace Zeichen - in mehrere Parameter
auftrennt, musst du noch das $1 im Script in
doppelte Anführungszeichen setzen, also "$1"
schreiben.  Ob das word splitting da nochmal
stört, weiss ich aber nicht auswendig; sowas muss
ich leider immer wieder neu in der manpage
nachlesen, wann genau die shell was macht.

Es gibt normal zur basch noch andere
Dokumentation, als die schwer verständliche und
oft irreführende manpage, aber bei debian habe ich
keine Ahnung, wo diese zu finden ist und ob sie
überhaupt bei debian dabei ist.  Jedenfalls, wenn
man früher, so ca. 1992, eine bash im sourcecode
holte und compilierte, waren da neben der manpage
noch viele weitere wichtige Informationen und auch
Beispiele für Anwendungen dabei.


Alles Gute
Helmut H. Franke

-- 
http://www.worte-des-lebens.net/Vaterworte/vaterworte.html
http://firethegrid.org/
http://www.anastasia-de.com/Megre_Buecher/Megre_Buecher.htm
http://itc.napier.ac.uk/e-Petition/bundestag/
Avatar Chat Systeme:  http://www.amiculi.net  http://pgm.amoris.org
Servamus vitam terramque!



Reply to: