Potřebuji vytvořit miniatury z více souborů .png a chtěl bych to udělat pomocí ImageMagicks convert
užitečnost. K rekurzivnímu nalezení všech souborů, které samy nejsou miniaturami, používám následující volání (rozdělené na dva řádky, aby byly čitelné):
find . -type f -name "*.png" -not -name "*thumb.png*"
-exec convert {} -thumbnail 200x200 {}.thumb.png ;`
To by ale samozřejmě vytvořilo soubor s názvem a.png.thumb.png
při spuštění v souboru s názvem a.png
. Jak mohu odstranit .png
rozšíření z druhého {}
parametr předaný ke konverzi?
Přijatá odpověď:
Nejjednodušší způsob, jak toho dosáhnout, je předat {}
do shellu jako sh
a nechat to udělat shell:
find ...
-exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} ;
Porovnat adresáře, ale ne obsah souborů?
Spolehlivý způsob, jak uvěznit dětské procesy pomocí `nsenter:`?