J'ai 300k + jpg dans le même répertoire. Les fichiers sont comme:
/covers
0788862281217.jpg
0788863155104.jpg
7888311516341.jpg
7888370920479.jpg
7888497074277.jpg
J'ai besoin de redimensionner par lots en enregistrant les images redimensionnées dans le même répertoire avec un préfixe th_ dans le nom de fichier comme
th_0788862281217.jpg
th_0788863155104.jpg
th_7888311516341.jpg
th_7888370920479.jpg
th_7888497074277.jpg
tout à l'intérieur /covers
Ce qui suit fonctionne mais écrase les fichiers source
$ find thumbs -type f -name "*.jpg" | xargs mogrify -resize 75x75
je dois donc copier toutes les images dans un nouveau répertoire (/ covers / thumbs), puis exécuter le lot, puis déplacer tous les fichiers dans / covers
la source
dirname
etbasename
et y insérer le préfixe. Ce qui suit serait plus facile, si vous êtes déjà dans le dossier:for i in *.jpg; do convert "$i" -resize 75x75 "th_$i"; done
.find
avecexecdir
laquelle j'ai ajouté à ma réponse ci-dessus.