Use any one of the following command to create temporary empty file names. The first command is special as it use the redirection operator >, the redirection refers to the standard output. So you are creating a new file or destroying existing file:
>/tmp/filename
OR
echo -n "" > /tmp/filename
The touch command can be also used to create temporary empty file names:
touch /tmp/newfilenamemktemp Command
To make temporary unique filename use the mktemp command. In this example, create temporary filename in using a user's $TMPDIR environment variable:
mktempSample outputs:
/tmp/tmp.yTfJX35144
Use /tmp/tmp.yTfJX35144 to store your output. You can store filename to a variable:
OUT="$(mktemp)" ls > $OUT
The following bash scripting illustrates a simple use of mktemp where the script should quit if it cannot get a safe temporary file
#!/bin/bash OUT=$(mktemp /tmp/output.XXXXXXXXXX) || { echo "Failed to create temp file"; exit 1; } echo "Today is $(date)" >> $OUT
The mktemp utility takes the given filename template and overwrites a portion of it to create a unique filename. The template may be any filename with some number of 'Xs' appended to it, for example /tmp/tfile.XXXXXXXXXX.
TMPDIR Environment Variable
By default mktemp will use user's $TMPDIR. If not defined it will use /tmp. You can use the specified directory as a prefix when generating the temporary filename. The directory will be overridden by the user's TMPDIR environment variable if it is set. In this example the temporary file will be created in /chroot/apache/var/tmp unless the user's TMPDIR environment variable specifies otherwise:
mktemp -p /chroot/apache/var/tmp php.lock.XXXXXXXXXX
References:
- man page - mktemp and bash
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop














{ 7 comments… read them below or add one }
The first command works fine. It creates a neat and empty file.
Second command does not work, “touch” is a command the file is the only parameter. It should not use a redirect as shown above.
touch /tmp/newfilename
Since this is a command it also works consistently no matter what shell interpreter someone might be using.
The third one is missing a -n on the echo to prevent the newline from being sent to the file making it less than empty.
echo -n “” > /tmp/filename
use “mktemp /tmp/tempfile.XXXXXXXXX” to make a secure tempory file and avoid exploits
mktemp! wow! Some time ago I wrote my own utility which do the same as mktemp.. shit
how we create a empty shell??
mktemp is wicked neat… just what I needed when my google search landed on this page. thanks!
Hi Vivek,
Nathan is right.
Why don’t you change for correct entries :
touch > /tmp/newfilenameshould be
touch /tmp/newfilenameand
echo "" > /tmp/filenameshould be
echo -n "" > /tmp/filenameTIA !
@Nathan/ Philippe,
Thanks for the heads up. The post has been updated.