Thanks, if I also use -o I can control the Spectrum filename that's inside the compiler's TAP file, otherwise it has a .tap suffix. I can accomplish what I originally set out to do in this one-liner in fact which is ideal, given how frequently I build the code. I'm on Mac OS so no copy /b for me.
Code:
./zxbc.py -t -O3 ../arti14.bas -o arti.bin && cat ../loader+scr.tap ./arti.bin > artillery.tap