Using temporary files cleanly

If you need a temporary file in your script to store data for the script's run, it can be tempting to assume a fixed path for the file in /tmp:

# Store the current date for later# Requires GNU/BSD `date` with non-POSIX %s formatdate +%s > /tmp/myscript-timestamp

/tmp exists on virtually all Unix systems, which makes it a popular choice. However, this approach has some risks:

  • There may be a safer or more suitable location for temporary files specified by the system, or preferred by the user, such as /var/tmp. The /tmp directory might be very strictly locked down in some environments, especially PCI-DSS-compliant systems.
  • If the temporary filename name is not unique, and more than one instance of the script runs ...

Get Bash Quick Start Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.