Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Pug 09 Prosince 2011, 14:23:58

Název: Hromadné přejmenování
Přispěvatel: Pug 09 Prosince 2011, 14:23:58
Pěkný den,

doufám že tu najdu pomoc, jelikož řeším script, který má hromadně přejmenovat soubory v určitém adresáři. Podle nového prexifu názvu souborů. Podle toho nového názvu a počítadla to má přejmenovat soubory v adresáři. Takže konečným výsledkem budou soubory pojmenované např. soubor1 soubor2 atd...

Bohužel nevím jak na to, takže bych byl velmi rád za jakoukoliv radu jak to řešit.

Osobně jsem zkoušel přejmenování pomocí příkazu mv. Avšak když zadám jako zdroj všechny soubory v adresáři. A jako nový název nějaké slovo. Oznámí mi to, že cíl není adresář. Takže předpokládám že zde se nějak musí zakomponovat počítadlo, či použít jiného příkazu.
Název: Re:Hromadné přejmenování
Přispěvatel: pacholik 09 Prosince 2011, 15:47:29
moc tomu nerozumím, nehledáš for cyklus?
http://www.linuxexpres.cz/praxe/bash-9-dil
http://www.abclinuxu.cz/clanky/navody/bash-iii
Název: Re:Hromadné přejmenování
Přispěvatel: Uran 12 Prosince 2011, 07:31:11
Tento skript po zadani cisla prejmenuje vsechny jpg na tvar img00"cislo+1".jpg a smazne puvodni.

Kód: [Vybrat]
#!/bin/bash
echo "zadej cislo"
read count
find . -iname '*.jpg' -type f  | while read F
do count=`expr $count + 1`
cp "$F" img00"$count".jpg
rm -rf "$F"
done

Jinak ja upraveny skript pouzivam na prejmenovavani a koncerzi fotek pro web.

Kód: [Vybrat]
#!/bin/bash
echo "zadej cislo"
read count
find . -iname '*.jpg' -type f  | while read F
do count=`expr $count + 1`
convert -strip -quality 80 -resize 800 "$F" img00"$count".jpg
convert -strip -quality 70 -resize 122 "$F" tn00"$count".jpg
rm -rf "$F"
done