|Linux & Unix Commands - Search Man Pages
MKTEMP(1) BSD General Commands Manual MKTEMP(1)
mktemp -- make temporary file name (unique)
mktemp [-d] [-q] [-u] template
The mktemp utility takes the given file name template and overwrites a portion of it to cre-
ate a file name. This file name is unique and suitable for use by the application. The
template may be any file name with at least 6 of 'Xs' appended to it, for example
/tmp/temp.XXXXXX. The trailing 'Xs' are replaced with the current process number and/or a
unique letter combination. The number of unique file names mktemp can return depends on the
number of 'Xs' provided; six 'Xs' will result in mktemp testing roughly 26 ** 6 combina-
If mktemp can successfully generate a unique file name, the file is created with mode 0600
(unless the -u flag is given) and the filename is printed to standard output.
The available options are as follows:
-d Make a directory instead of a file.
-q Fail silently if an error occurs. This is useful if a script does not want error
output to go to standard error.
-u Operate in ``unsafe'' mode. The temp file will be unlinked before mktemp exits.
This is slightly better than mktemp(3) but still introduces a race condition. Use
of this option is not encouraged.
The mktemp utility exits with a value of 0 on success, and 1 on failure.
The following sh(1) fragment illustrates a simple use of mktemp where the script should quit
if it cannot get a safe temporary file.
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
echo "program output" >> $TMPFILE
In this case, we want the script to catch the error itself.
TMPFILE=`mktemp -q /tmp/$0.XXXXXX`
if [ $? -ne 0 ]; then
echo "$0: Can't create temp file, exiting..."
Note that one can also check to see that $TMPFILE is zero length instead of checking $?.
This would allow the check to be done later one in the script (since $? would get clobbered
by the next shell command).
The mktemp utility appeared in OpenBSD.
BSD November, 20, 1996 BSD
All times are GMT -4. The time now is 02:28 PM.