mktemp man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

MKTEMP(1)							     MKTEMP(1)

NAME
       mktemp - make temporary filename

SYNOPSIS
       mktemp [-dtqu] [-p directory] [template]

DESCRIPTION
       The mktemp utility makes a temporary filename. To do this, mktemp takes
       the specified filename template and overwrites a portion of it to  cre‐
       ate a unique filename. See OPERANDS.

       The  template  is  passed to mkdtemp(3C) for directories or mkstemp(3C)
       for ordinary files.

       If mktemp can successfully generate a unique  filename,	the  file  (or
       directory)  is created with file permissions such that it is only read‐
       able and writable by its owner (unless the -u flag is  given)  and  the
       filename is printed to standard output.

       mktemp  allows  shell scripts to safely use temporary files. Tradition‐
       ally, many shell scripts take the name of the program with the PID as a
       suffix  and  used  that	as  a  temporary filename. This kind of naming
       scheme is predictable and the race condition it creates is easy for  an
       attacker	 to  win. A safer, though still inferior approach is to make a
       temporary directory using the same naming scheme. While this guarantees
       that a temporary file is not subverted, it still allows a simple denial
       of service attack. Use mktemp instead.

OPTIONS
       The following options are supported:

       -d
		       Make a directory instead of a file.

       -p directory
		       Use the specified directory as a prefix when generating
		       the temporary filename.	The directory is overridden by
		       the user's TMPDIR environment variable if  it  is  set.
		       This option implies the -t flag.

       -q
		       Fail  silently  if an error occurs. This is useful if a
		       script does not want error output  to  go  to  standard
		       error.

       -t
		       Generate	 a  path rooted in a temporary directory. This
		       directory is chosen as follows: If  the	user's	TMPDIR
		       environment  variable  is  set, the directory contained
		       therein is used. Otherwise, if the -p  flag  was	 given
		       the  specified  directory is used. If none of the above
		       apply, /tmp is used. In this  mode,  the	 template  (if
		       specified)  should be a directory component (as opposed
		       to a full path) and thus should not contain any forward
		       slashes.

       -u
		       Operate	in  unsafe  mode.  The	temp  file is unlinked
		       before mktemp exits.   This  is	slightly  better  than
		       mktemp(3C),  but still introduces a race condition. Use
		       of this option is discouraged.

OPERANDS
       The following operands are supported:

       template
		   template can be any filename with one or more  Xs  appended
		   to it, for example /tmp/tfile.XXXXXX.

		   If  template	 is  not specified, a default of tmp.XXXXXX is
		   used and the -t flag is implied.

EXAMPLES
       Example 1 Using mktemp

       The following example illustrates a simple use of  mktemp  in  a	 sh(1)
       script.	In this example, the script quits if it cannot get a safe tem‐
       porary file.

	 TMPFILE=`mktemp /tmp/example.XXXXXX`
	 if [ -z "$TMPFILE" ]; then exit 1; fi
	 echo "program output" >> $TMPFILE

       Example 2 Using mktemp to Support TMPDIR

       The following example uses mktemp to support for a user's TMPDIR	 envi‐
       ronment variable:

	 TMPFILE=`mktemp -t example.XXXXXX`
	 if [ -z "$TMPFILE" ]; then exit 1; fi
	 echo "program output" >> $TMPFILE

       Example	3  Using  mktemp  Without Specifying the Name of the Temporary
       File

       The following example uses mktemp without specifying the	 name  of  the
       temporary file. In this case the -t flag is implied.

	 TMPFILE=`mktemp`
	 if [ -z "$TMPFILE" ]; then exit 1; fi
	 echo "program output" >> $TMPFILE

       Example	4  Using  mktemp with a Default Temporary Directory Other than
       /tmp

       The following example creates the temporary file in  /extra/tmp	unless
       the user's TMPDIR environment variable specifies otherwise:

	 TMPFILE=`mktemp -p /extra/tmp example.XXXXX`
	 if [ -z "$TMPFILE" ]; then exit 1; fi
	 echo "program output" >> $TMPFILE

       Example 5 Using mktemp to Remove a File

       The  following  example attempts to create two temporary files. If cre‐
       ation of the second temporary file fails, mktemp removes the first file
       before exiting:

	 TMP1=`mktemp -t example.1.XXXXXX`
	 if [ -z "$TMP1" ]; then exit 1; fi
	 TMP2=`mktemp -t example.2.XXXXXX`
	 if [ -z "$TMP2" ]; then
		 rm -f $TMP1
		 exit 1
	 fi

       Example 6 Using mktemp

       The  following  example does not exit if mktemp is unable to create the
       file. That part of the script has been protected.

	 TMPFILE=`mktemp -q -t example.XXXXXX`
	 if [ ! -z "$TMPFILE" ]
	 then
		 # Safe to use $TMPFILE in this block
		 echo data > $TMPFILE
		 ...
		 rm -f $TMPFILE
	 fi

ENVIRONMENT VARIABLES
       See environ(5) for descriptions of the following environment  variables
       that affect the execution of mktemp with the -t option: TMPDIR.

EXIT STATUS
       The following exit values are returned:

       0
	    Successful completion.

       1
	    An error occurred.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌────────────────────┬─────────────────┐
       │  ATTRIBUTE TYPE    │ ATTRIBUTE VALUE │
       ├────────────────────┼─────────────────┤
       │Interface Stability │ Committed	      │
       └────────────────────┴─────────────────┘

SEE ALSO
       sh(1), mkdtemp(3C), mkstemp(3C), attributes(5), environ(5)

NOTES
       The  mktemp utility appeared in OpenBSD 2.1. The Solaris implementation
       uses  only  as  many  `Xs'  as  are  significant	 for  mktemp(3C)   and
       mkstemp(3C).

				 Jan 10, 2008			     MKTEMP(1)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net