Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

On most FHS systems, there is a /tmp folder as well as a /var/tmp folder. What is the functional difference between the two?

share|improve this question
Here is a similar question on Server Fault: Difference and correct usage for /tmp and /var/tmp – pabouk Nov 11 '13 at 7:13
up vote 58 down vote accepted

/tmp is meant as fast (possibly small) storage with a short time to live (TTL). Many systems clean /tmp very fast - on some systems it is even mounted as RAM-disk. /var/tmp is normally located on a physical disk, is larger and can hold temporary files for a longer time. Some systems also clean /var/tmp - but with a longer TTL.

Also note that /var/tmp might not be avaiable in the early boot-process, as /var and/or /var/tmp may be mountpoints. Thus it is a little bit comparable to the difference between /bin and /usr/bin. The first is available during early boot - the later after the system has mounted everything. So most boot-scripts will use /tmp and not /var/tmp for temporary files.

Another (upcoming) location on Linux for temporary files is /dev/shm.

share|improve this answer
I find it a bit ironic that /bin and /usr/bin are actually the same these days (symlinks). ;-) – Felix Schwarz Apr 5 at 14:28
@Felix Not on all distributions yet. But Linux is moving that way. Propably because disks get bigger and bigger. – Nils May 5 at 21:34

/tmp may be, and sometimes is, cleaned on reboot. /var/tmp is preserved between reboots.

See the Wikipedia article on the FHS.

share|improve this answer
/tmp may even clean the files created by a process right after it has exited! – Spookbuster Oct 3 '15 at 12:14

They have the same purpose and functionality. Every version of UNIX/Linux will handle these directories differently. Historically, before the advent of RAM/swap based filesystems, you had disk-less systems where the / and /usr filesystems would be read-only and /var (variable) would be read-write. The /tmp name would be a symbolic link to /var/tmp. Later, disk-less systems fell out of style, disk space became cheaper (to have larger root filesytems) and technology allowed for filesystems mounted from memory instead of disk. The /var/tmp directory fell out of style, but is still used by some programs.

These days, more security are set up by default on /tmp, like g+s,+t permissions, but not on /var/tmp. Additionally, /var/tmp is rarely mounted from RAM or swap.

share|improve this answer

POSIX Base Specifications, Issue 7 on /tmp:

The following directory shall exist on conforming systems and shall be used as described:


A directory made available for applications that need a place to create temporary files. Applications shall be allowed to create files in this directory, but shall not assume that such files are preserved between invocations of the application.

The File Hierarchy Standard 2.3 on /tmp:

The /tmp directory must be made available for programs that require temporary files.

Programs must not assume that any files or directories in /tmp are preserved between invocations of the program.


IEEE standard P1003.2 (POSIX, part 2) makes requirements that are similar to the above section.

Although data stored in /tmp may be deleted in a site-specific manner, it is recommended that files and directories located in /tmp be deleted whenever the system is booted.

FHS added this recommendation on the basis of historical precedent and common practice, but did not make it a requirement because system administration is not within the scope of this standard.

POSIX does not specify /var/tmp. The FHS does though:

The /var/tmp directory is made available for programs that require temporary files or directories that are preserved between system reboots. Therefore, data stored in /var/tmp is more persistent than data in /tmp.

Files and directories located in /var/tmp must not be deleted when the system is booted. Although data stored in /var/tmp is typically deleted in a site-specific manner, it is recommended that deletions occur at a less frequent interval than /tmp.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.