Я использую для создания tempfile, удалять его и воссоздавать его как каталог:
tmpnam=`tempfile`
rm -f $tmpnam
mkdir "$tmpnam"
Проблема в том, что другой процесс может получить одно и то же имя X, если он случайно выполнит временный файл после одного процесса rm -f X и непосредственно перед mkdir X.