PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Convert > Verzeichnis erst. > packen (aber wie?)


M.tesnor
24.08.2006, 11:29
Moin liebe Leute,

ich bin noch recht neu in der Shell-Scene und hoffe, dass meine Frage nicht zu blöd klingt.
Ich mochte Fotos convertieren in ein Verzeichnis verschieben und anschließen packen. Convertieren per Shell habe ich hinbekommen, aber ein Vereichnis ertsellen > verschieben und dann packen geht noch nicht.

Mein script:
#!/bin/bash
# conv2net

for i in *.jpg;
do convert -scale 800 -quality 75 $i net`basename $i .jpg`.jpg;


echo "$i net`basename $i .jpg`"
zip -9 -x $i net`basename $i .jpg`
done

Wie kann ich ein Verzeichniss erstellen lassen wenn es noch nicht da ist. Und wie kannj ich eine Zip-datei anlegen.

Danke für die Hilfe
Steven


Jan Krüger
24.08.2006, 11:38
mkdir -p Verzeichnis
Für zip brauchst du das gleichnamige Programm; in der Manpage dazu ist die Bedienung erläutert.

M.tesnor
24.08.2006, 11:54
Mein Code:
#!/bin/bash
# conv2net
mkdir -p Net
for i in *.jpg;
do convert -scale 800 -quality 75 $i net`basename $i .jpg`.jpg;


echo "$i net`basename $i .jpg`"
done

Nun wird das Verzeichnis angelegt (hätte ich ja drauf kommen können).
Wenn ich nun probiere mit mv die Dateien zu verschieben damit ich das Verzeichniss packen kann, kommt der Fehler:

"mv: Aufruf von stat für „100_4826.jpg net100_4826“ nicht möglich: No such file or directory"
Ich glaube, dass lag an diesem Code:
mv "$i net`basename $i .jpg`" /Net Was mache ich da falsch?

Danke
Steven

Mr.Homm
24.08.2006, 13:31
Wenn ich das richtig verstehen, wird aus einer Datei $i beim Konvertieren eine Zieldatei net$i generiert. Wenn $i nicht auf .jpg endet, wird .jpg an den Name der Zieldatei angehängt.

Wenn du die Datei net$i nach /Net verschieben willst, ist mv net`basename $i .jpg`.jpg /Net zu verwenden (nicht getestet).

M.tesnor
24.08.2006, 13:39
Habe ich ausprobiert und bekomme folgende Fehlermeldung:

mv: Verschieben von „net100_4824.jpg“ nach „/Net“ nicht möglich: Permission denied

Ich glaube erversucht im root-Verzeichnis den Net-Ordner zu finden. Muss ich evtl vor das "/Net" im Code irgendetwas angeben, damit auf den Subfolder /Net zugegriffen wird?

Danke
Steven

Chb
24.08.2006, 18:12
Genau richtig. Anstatt /Net also ./Net angeben.
Soll heißen:
mv net`basename $i .jpg`.jpg ./Net

Jan Krüger
24.08.2006, 21:44
Oder Net/ — das "./" ist nicht nötig und der Slash am Ende stellt sicher, dass du nicht versehentlich eine Datei namens "Net" überschreibst.