Si vous avez beaucoup de fichiers à créer, il serait utile de "toucher" plusieurs fichiers en même temps, afin de ne pas nécessiter la création d'un nouveau processus pour chacun d'entre eux (ce qui prendrait beaucoup de temps s'ils étaient exécutés plusieurs milliers de fois).
Option 1: substitution de motif + xargs
Cette option fournira plusieurs chemins vers la commande touch
en une seule fois, généralement quelques milliers ou ce que le système peut contenir sur une seule ligne de commande.
find "$dossier" -mindepth 1 -maxdepth 1 -name '*.png' -print0 |
sed -ze 's/\.png$/.txt/' |
xargs -r0 -- touch --
Option 2: expansion de paramètres + redirection de sortie de commande
Cette option n'exécute pas du tout la commande touch
mais utilise plutôt les fonctionnalités de shell Bash/Bourne/POSIX qui ne nécessitent pas du tout de sous-processus.
for f in "$dossier"/*.png; do
: >> "${f%.png}.txt"
done