*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> mktemp (1)              
Title
Content
Arch
Section
 

mktemp(1)

Contents


NAME    [Toc]    [Back]

       mktemp - Create a secure and uniquely named file or directory

SYNOPSIS    [Toc]    [Back]

       mktemp [-dqt] [-p prefix_directory] [template]

OPTIONS    [Toc]    [Back]

       Makes a directory instead of a file.  Fails silently if an
       error  occurs.   Prepends  the  specified path to the name
       generated for the temporary file or directory.

              This option implies the -t option.  Therefore,  the
              value  of  the TMPDIR environment variable, if set,
              overrides the  path  prefix  specified  by  the  -p
              option.   Creates  a  directory  or file whose path
              prefix is as follows (in highest to lowest order of
              precedence):  The  value  of the TMPDIR environment
              variable The argument to the -p option /tmp

OPERANDS    [Toc]    [Back]

       Specifies a template used by mktemp to form a unique  name
       for the file or directory being created. The template is a
       combination of characters that are included in  the  name,
       trailed   by   uppercase   X   characters   (for  example,
       fpm.XXXXXXXX or fpmXXXXXX).  When creating  the  name  for
       the  file or directory, mktemp substitutes a random combination
 of letters and numbers in place of the uppercase  X
       characters.

              If  the  trailer  contains fewer than six X characters,
 mktemp increases the number of  X  characters
              to  six  before substituting the random combination
              of letters and numbers. However,  in  scripts  that
              might  be  ported  to  other  platforms, specify at
              least six X characters explicitly.

              If template is omitted from the command, the  value
              tmp.XXXXXXXXXX  is  used,  and  the  -t  option  is
              implied.

              When including both the template operand and the -t
              option,  template  specifies the final component of
              the path and cannot contain any slash  (/)  characters.

DESCRIPTION    [Toc]    [Back]

       The  mktemp  utility  is  provided to give shell scripts a
       safer way to create  temporary  files,  particularly  when
       writing   to   world-writeable  areas,  such  as  /tmp  or
       /var/tmp.   Traditional  methods  for  creating  temporary
       files,  such as combining the name of the program with the
       process ID of the user running it, are highly  predictable
       and can allow system security to be compromised.

       The mktemp utility creates a directory or file with a randomized
 name and safe protection mode.  In the event  that
       the  generated name specifies an existing directory, regular
 file, symbolic link, hard link, or fifo,  the  utility
       automatically retries with a different name.

       If  mktemp is successful at generating a unique file name,
       the file is created with mode 0600 and its name is written
       to  standard output. If mktemp is successful at generating
       a unique directory name, the  directory  is  created  with
       mode 0700 and its name is written to standard output.

       The mktemp utility is derived from OpenBSD software.

EXIT STATUS    [Toc]    [Back]

       Success.  An error occurred.

ERRORS    [Toc]    [Back]

       The following diagnostics may be printed to standard error
       during the normal course of  utility  operation.   mktemp:
       template must not contain directory separators in -t mode

              If  -t  is  included (or implied by the -p option),
              template must specify only the final  node  of  the
              path.

              This error is also returned if the -p option specifies
 a directory that does not exist when the  temporary
  file  is  created.  mktemp: cannot allocate
              memory

              Insufficient memory is available to the utility for
              one of its operations.  mktemp: path is too long

              The  length  of the pathname for the generated file
              exceeded PATH_MAX.  mktemp: cannot  make  temporary
              directory

              The  -d  option  was included and a directory could
              not be created for one of  the  following  reasons:
              The  utility  could  not  generate a directory name
              that is unique.  An intermediate node in the specified
  path  does  not  exist.  The process does not
              have required permissions.  Insufficient disk space
              is  available  for directory creation.  The maximum
              number of inodes for the parent directory has  been
              reached.  mktemp: cannot make temporary file

              The  file  could not be created for one of the following
 reasons: The utility could  not  generate  a
              file  name that is unique.  An intermediate node in
              the specified path does  not  exist.   The  process
              does  not  have required permissions.  Insufficient
              disk space is available  for  file  creation.   The
              maximum  number  of inodes for the parent directory
              has been reached.

EXAMPLES    [Toc]    [Back]

       The following example shows a  simple  use  of  mktemp  in
       which  the template operand specifies the absolute path to
       the temporary file and the script exits if it cannot  create
 the file:

              TMPFILE=`/bin/mktemp /tmp/fpm.XXXXXX` if [ $? -ne 0
              ] then
                    echo "Cannot  create  temporary  file;  exiting..."

                    exit 1 fi

              Because neither the -t nor -p option is included in
              the command line, the value of TMPDIR cannot  override
 the file's path at run time.

              When  specifying the absolute path to the temporary
              file, do not include $0 as shown in  the  following
              example  because  $0 by itself sometimes represents
              an absolute path:

              TMPFILE=`/bin/mktemp /tmp/$0.XXXXXX`

              Instead, include $0 along with basename as shown in
              the following example:

              TMPFILE=`/bin/mktemp  /tmp/\`basename  $0\`.XXXXXX`
              The -t option in the following example  allows  the
              utility  to  use the setting of the TMPDIR environment
 variable (or, by default, /tmp) as the  directory
 prefix for the temporary file:

              file_basename=`basename  $0`  TMPFILE=`mktemp -q -t
              ${file_basename}.XXXXXX` In the following  example,
              the  -p option specifies a default temporary directory
 other than /tmp; the temporary  file  will  be
              created  in  /extra/tmp  unless  the setting of the
              TMPDIR environment variable at the time the  script
              runs overrides this path:

              TMPFILE=`/bin/mktemp -p /extra/tmp fpm.XXXXXXXXXX`

              Note  that  this  example  will cause the script to
              fail if the /extra/tmp directory does not exist  or
              is  not writeable when the utility attempts to create
 the temporary file.

ENVIRONMENT VARIABLES    [Toc]    [Back]

       Provides a  default  value  for  the  internationalization
       variables  that  are  unset  or  null. If LANG is unset or
       null, the corresponding value from the default  locale  is
       used.   If  any of the internationalization variables contain
 an invalid setting, the utility behaves as if none of
       the  variables  had  been  defined.  If set to a non-empty
       string value, overrides the values of all the other internationalization
  variables.  Determines the locale for the
       format and contents  of  diagnostic  messages  written  to
       standard  error.   Determines  the locale for interpreting
       sequences of text data as characters (for example, as single-byte
  or  multibyte  characters in operands and option
       arguments).  Determines the location of  message  catalogs
       for  the processing of LC_MESSAGES.  Determines the directory
 in which the temporary file is created  when  the  -t
       option is implicitly or explicitly specified.

SEE ALSO    [Toc]    [Back]

      
      
       Functions: mktemp(3)

       Others: environ(5)



                                                        mktemp(1)
[ Back ]
 Similar pages
Name OS Title
pathfind IRIX search for named file in named directories
VOP_MKNOD FreeBSD create a file, socket, fifo, device, directory or symlink
VOP_CREATE FreeBSD create a file, socket, fifo, device, directory or symlink
VOP_MKDIR FreeBSD create a file, socket, fifo, device, directory or symlink
VOP_SYMLINK FreeBSD create a file, socket, fifo, device, directory or symlink
acl_delete_def_file IRIX delete the default ACL for a named directory
mklost+found Linux create a lost+found directory on a mounted Linux second extended file system
lndir OpenBSD create a shadow directory of symbolic links to another directory tree
lndir Tru64 create a shadow directory of symbolic links to another directory tree
sem_open HP-UX create/open a named POSIX semaphore
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service