Mám takovouhle představu. Ve složce s obrázky je dvouúrovňová adresářová struktura představující typ a model, ve složce model jsou pak jednotlivé obrázky. Potřebuju přejmenovat všechny *.jpg na 1.jpg, 2.jpg, ... . Dále v poslední této složce, kde se přejmenovávájí soubory vytvořit složku, do který se vygenerují náhledy. Uvíz sem na tom, že když skript pustím náhodou dvakrát za sebou tak smaže část obrázků a čísluje 1.jpg, 11.jpg, 12.jpg, ... , myslel jsem že je pouze znova přejmenuje (potřebuju i přidávat obrázky). Tady je dyžtak vše potřebný pro toho kdo mi chce pomoct
www.mk33.ic.cz/obrazky-kraviny/soubory.zip#!/bin/bash
#funkce
vypisAdresare()
{
for I in *;
do
if test -d "$I"
then echo "$I"
cd "$I"
zpracujObrazky
cd ..
fi
done
}
zpracujObrazky(){
ls | cat -n
for I in *;
do
if test -d "$I"
then #echo "$I"
cd "$I"
poradi=1
#přejmenování obrázků a vytvoření náhledů
#
#... proč tohle nejde???
#
test –d nahledy || mkdir nahledy
for i in *.[Jj][Pp][Gg];
do
#
#proč to maže při druhým spuštění soubory????
#
mv "$i" "$poradi.jpg"
poradi=$((poradi+1))
#convert co -resize 120x90 -quality 80 kam
done
cd ..
fi
done
}
echo "------------------------------------------------------------------------"
vypisAdresare;
echo "------------------------------------------------------------------------"
Tak jsem nějak pokročil. Do každého koncového adresáře ukládám soubor s číslem následujícího souboru. Hodnotu načtu a přesunu obrázek do složky /obrazky. Večír to náhazet ještě do cyklu ať to vezme všechny adresáře.
#!/bin/bash
pocet=`cat "pocet.txt"`
mkdir "obrazky" 2> /dev/null
mkdir "nahledy" 2> /dev/null
for i in *.[Jj][Pp][Gg];
do
if [ "$i" == "*.[Jj][Pp][Gg]" ]; then
echo "adresar neobsahuje obrazky"
else
convert "$i" -resize 120x90 -quality 80 "nahledy/$pocet.jpg" 2> /dev/null
mv "$i" "obrazky/$pocet.jpg" 2> /dev/null
pocet=$((pocet+1))
fi
done
echo $pocet > "pocet.txt"