Hallo Liste, ich möchte über eine for schleife ein paar dateien umbenennen. Nur bekomme ich folgende fehlermeldung: for FILE in `/ha/sa/WebSphere\ Portal/*` ;do mv $FILE $FILE-wps ;done -bash: /ha/sa/WebSphere Portal/sa.ws2_2005.01.26-00.00.00.log.gz: Permission denied die datei und verzeichnis rechte sind richtig gesetzt. drwxr-xr-x auf das verzeichniss und -rw-r--r-- auf die dateien user und gruppe ist root und als der bin ich auch angemeldet. ich bin etwas verwirrt wieso kommt hier ein permission denied? Danke für eure tips Gruss Christian
Am Freitag, 18. Februar 2005 11:46 schrieb christian zimmermann:
Hallo Liste,
ich möchte über eine for schleife ein paar dateien umbenennen. Nur bekomme ich folgende fehlermeldung:
for FILE in `/ha/sa/WebSphere\ Portal/*` ;do mv $FILE $FILE-wps ;done -bash: /ha/sa/WebSphere Portal/sa.ws2_2005.01.26-00.00.00.log.gz: Permission denied
die datei und verzeichnis rechte sind richtig gesetzt.
drwxr-xr-x auf das verzeichniss und -rw-r--r-- auf die dateien
user und gruppe ist root und als der bin ich auch angemeldet. ich bin etwas verwirrt wieso kommt hier ein permission denied?
wenn ich's recht sehe kommen in den Dateinamen Blanks vor. besser also : <ungetestet> find /ha/sa/WebSphere\ Portal -type f | while read f do mv "$f" "$f-wps" done </ungetestet> Grund: die for-Schleife trennt Wörter beim Blank. Die While-Schleife hingegen liest so wie ich's geschrieben habe die ganze Zeile ein. Wichtigi sind auch die " um $f, damit die Leerzeichen auch erhalten bleiben Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 9204871 Fax: +49(721) 24874 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
Am Freitag, 18. Februar 2005 11:46 schrieb christian zimmermann:
ich möchte über eine for schleife ein paar dateien umbenennen. Nur bekomme ich folgende fehlermeldung:
for FILE in `/ha/sa/WebSphere\ Portal/*` ;do mv $FILE $FILE-wps ;done -bash: /ha/sa/WebSphere Portal/sa.ws2_2005.01.26-00.00.00.log.gz: Permission denied
die datei und verzeichnis rechte sind richtig gesetzt.
drwxr-xr-x auf das verzeichniss und -rw-r--r-- auf die dateien
user und gruppe ist root und als der bin ich auch angemeldet. ich bin etwas verwirrt wieso kommt hier ein permission denied?
Du hast /ha/sa/WebSphere\ Portal/* in `..` gesetzt. Alles was dazwischen steht wird erst mal ausgeführt und die Ausgabe bewertet. Aber die Datei kann nicht ausgeführt werde, da sie keine Ausführrechte hat. Flasche Klammer. Richtig wäre "..." Ob das denn klappt, weiß ich auch nicht, da Du Leerzeichen in Deinen Dateinamen hast, da müßte ich jetzt ausprobieren, habe ich aber keine Lust zu. Ich verstehe sowieso nicht, warum man unbedingt Leerzeichen in Dateinamen haben will, das gibt immer nur Ärger. Bernd
Hallo, Am Fri, 18 Feb 2005, Bernd Brodeßer schrieb:
Am Freitag, 18. Februar 2005 11:46 schrieb christian zimmermann:
ich möchte über eine for schleife ein paar dateien umbenennen. Nur bekomme ich folgende fehlermeldung:
for FILE in `/ha/sa/WebSphere\ Portal/*` ;do mv $FILE $FILE-wps ;done -bash: /ha/sa/WebSphere Portal/sa.ws2_2005.01.26-00.00.00.log.gz: Permission denied
die datei und verzeichnis rechte sind richtig gesetzt.
drwxr-xr-x auf das verzeichniss und -rw-r--r-- auf die dateien
user und gruppe ist root und als der bin ich auch angemeldet. ich bin etwas verwirrt wieso kommt hier ein permission denied?
Du hast /ha/sa/WebSphere\ Portal/* in `..` gesetzt. Alles was dazwischen steht wird erst mal ausgeführt und die Ausgabe bewertet. Aber die Datei kann nicht ausgeführt werde, da sie keine Ausführrechte hat.
Flasche Klammer. Richtig wäre "..." Ob das denn klappt, weiß ich auch nicht,
Nein, da dann der * nicht expandiert wird. So gehts: $ for f in "Verz mit Leerzeichen/"*; do echo "»»$f««"; done »»Verz mit Leerzeichen/bar.gz«« »»Verz mit Leerzeichen/foo«« »»Verz mit Leerzeichen/fu.gz«« $ for f in Verz\ mit\ Leerzeichen/*; do echo "»»$f««"; done »»Verz mit Leerzeichen/bar.gz«« »»Verz mit Leerzeichen/foo«« »»Verz mit Leerzeichen/fu.gz«« Wird die Variable dann vewendet _MUSS_ sie gequoted werden. Einfacher ist's aber 'mmv' zu verwenden: $ mmv -n 'Verz mit Leerzeichen/*' 'Verz mit Leerzeichen/#1-wps' Verz mit Leerzeichen/bar.gz -> Verz mit Leerzeichen/bar.gz-wps Verz mit Leerzeichen/foo -> Verz mit Leerzeichen/foo-wps Verz mit Leerzeichen/fu.gz -> Verz mit Leerzeichen/fu.gz-wps -dnh --
Leider Gottes ist es so, daß wenn man einen Spammer zu Strecke gebracht hat, dafür drei neue auftauchen. Das ist wie bei den Fliegen. Schlägst Du eine Tot, kommen 40 zur Beerdigung. ;) [> Martin Mewes und Michael Raab in suse-linux]
sehr schön mmv kannte ich noch garnicht, funktioniert prima. Danke an alle! Gruss christian David Haller wrote:
Wird die Variable dann vewendet _MUSS_ sie gequoted werden.
Einfacher ist's aber 'mmv' zu verwenden:
$ mmv -n 'Verz mit Leerzeichen/*' 'Verz mit Leerzeichen/#1-wps' Verz mit Leerzeichen/bar.gz -> Verz mit Leerzeichen/bar.gz-wps Verz mit Leerzeichen/foo -> Verz mit Leerzeichen/foo-wps Verz mit Leerzeichen/fu.gz -> Verz mit Leerzeichen/fu.gz-wps
-dnh
participants (4)
-
Bernd Brodeßer
-
christian zimmermann
-
David Haller
-
Dr. Jürgen Vollmer