Eu não acho que você possa fazer isso enquanto estiver executando program.sh
apenas uma vez, pois ele continuará criando os arquivos, e você nunca pode ter certeza de quando um arquivo está completo.
Em vez disso, execute o programa uma vez para cada linha filenames.txt:
while IFS= read -r FILE; do # loop through files in filenames.txt
echo "$FILE" | ./program.sh # run program once and end it with newline
mv created_filename /some/other/location/${FILE}.ext; # move file
done < filenames.txt
- Use
mv
em vez decp
, será mais rápido se você estiver migrando para o mesmo sistema de arquivos. - Altere
.ext
para o formato de saída (por exemplo,.png
).