PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Rechte braucht mv?



iceman666
20-07-2004, 08:13
Hallo zusammen,

ich habe ein bash-Skript geschrieben das folgendermaßen ausschaut:



pattern=200*

cd "//<Verzeichnispfad auf dem Server>"

find . -name "$pattern" | for i in $pattern ; do
cd "$i"

unzip Lofgiles.zip
rm Logfiles.zip

cd "Logfiles"
j=0;
for Server in Server*.csv
do
j=$(($j + 1))
mv $Server Server_$j.csv
sed -f /scripts/sedfile Server_$j.csv > resultServer_$j.csv
done
cd "<ursprünglicher Verzeichnispfad auf dem Server>""
done


Aber die Zeile "mv $Server Server_$j.csv" funktioniert nicht richtig. Das Skript bringt folgende Fehler-Meldungen:


mv: when moving multiple files, last argument must be a directory
Try `mv --help' for more information.
sed: can't read Server_+: No such file or directory
sed: can't read 0: No such file or directory
sed: can't read +: No such file or directory
sed: can't read 1╪.csv: No such file or directory


Wenn ich das Ganze lokal auf meinem PC ausführe (in einem lokalen Verzeichnis), geht das wunderbar.

Mein User hat auf dem Server in diesen Verzeichnissen die Rechte "-rw-r--r--", habe also Schreibrecht auf die Dateien, oder sehe ich das falsch? Braucht "mv" etwa auch noch execute-Rechte?

Thanx and CYA,
iceman

peschmae
20-07-2004, 09:03
Enthalten die Dateinamen etwa Spaces? Die mv-Meldung tönt ganz so.
mv "$Server" "Server_$j.csv"
würde in dem Falle helfen.

MfG Peschmä

iceman666
20-07-2004, 10:04
Erstmal danke für die schnelle Antwort ...

Also die Dateinamen enthalten keine Spaces, höchstens Unterstriche.

ich hab es allerdings hinbekommen:
- ich benutze übrigens die cygwin-bash
- habe die bash.exe, die Befehle die ich brauche und alle benötigten DLLs nach D:\test kopiert
- wenn ich in der Windows-Command-Box ein "bash -login ./skript" unter D:\test mache funktioniert das Skript einwandfrei, das soll mal einer verstehen :(

Jetzt hab ich aber ein neues Problem:
mit "bash -login" landet man ja im Windows-Home-Directory des entsprechenden Users (bei uns ein Server-Laufwerk). Kann man dem Befehl irgendwie einen anderen Pfad mitgeben (z.B. D:\test), in dem der User dann landet?

Thanx and CYA,
iceman

Claudine
21-07-2004, 08:15
Jetzt hab ich aber ein neues Problem:
mit "bash -login" landet man ja im Windows-Home-Directory des entsprechenden Users (bei uns ein Server-Laufwerk). Kann man dem Befehl irgendwie einen anderen Pfad mitgeben (z.B. D:\test), in dem der User dann landet?

Unter Win habe ich keine Erfahrung, aber such mal nach einer Datei
profile.

Dort könntest prüfen, ob User $LOGNAME sich eingelogt hat
und dann in ein anderes $HOME Dir umleiten.

Ansonsten findest Du die Pfade der User zu ihren HOME Dir in der Datei
passwd.

cl:x:500:100:Tante foo:/home/cl:/bin/bash

Einfach mal was neues eintragen,
sowie 1x aus und 1x einloggen,
damit die Änderungen wirksam werden.