Thunderbird doesn't open files that don't have .eml extension as email files, but instead starts to compose a new message and adds them as attachments. To use thunderbird in scripts I'm looking for a way that would allow you to "temporarily rename" a file as a file.eml, open it in thunderbird (possibly edit, but at least read) and close it without saving anything to the disk - all in that process' memory.
While this could be achieved by either copying it or creating a symlink to that file in a temporary location there are many elegant ways to use process substitution or here strings that instead create "temporary files" in RAM that live only for duration of the process.
Is there anything that could create such "pseudo symlinks" in bash/zsh?
TMPPREFIX=/dev/shm/zsh,TMPSUFFIX=.emland=(<file). It uses a regular file (a copy of yourfile), not a symlink, therefore not an answer.TMPSUFFIX=.eml; thunderbird =(<PATH/TO/THE/FILE)results inFile not foundin Tbird&at the end solved it:TMPSUFFIX=.eml; thunderbird =(<PATH/TO/THE/FILE) &but now /tmp/zsh... files don't get deleted after processes exitthunderbirdexits. I guess ifthunderbirdspawns a child or delegates the job to another (already running) process and exits before the other process reads the file, then the other process may try to read after the file is deleted. The point is zsh deletes the file just after it notices thethunderbirdexits. This is exactly "live only for duration of the process" you wanted. Disowning the command (with&!) results in zsh not noticing (and not caring) when thethunderbirdexits, the file will remain. Totally not "only for duration of the process".rm /dev/shm/zsh*on every leftover file older than some chosen age?