Quick summary ↬ Depending on the OS the command varies. mktemp and tempfile are the commands used in the Bash script to create temporary file - it is easy, readily available and simple to use.
Temporary file creation in Bash
It is must to have feature in all the programming languages - an ability to create temporary files or intermediary file. These files are called temporary files but that does not mean that it will be deleted from the disk after a time period. In Linux, based on the distribution we have two commands to create temporary files - mktemp
and tempfile
.
In this article we explore ways to (1) how to create temporary file, (2) how to store the name of the temporary file created in a variable, (3) how to customize the name of temporary file by adding prefix and suffix, (4) tempfile as touch or vim, (5) how to create a directory with mktemp
and tempfile
.
How to create a temporary file?
|
|
Simple, right? If you din’t specify a directory name the tempfile
command will create a temporary file in the /tmp/
directory.
Now let’s try mktemp
.
|
|
How to create a temporary file inside a directory of your wish?
To create a file inside a directory specify the directory name as shown below:
With mktemp
use the -p
option:
|
|
With tempfile
use the –directory
or -d
option:
|
|
Make sure the directory is already present or else it will show an error as shown below
|
|
How to customize the temporary file names?
Pretty simple. –prefix
and –suffix
are used to customize the name of the file as shown below
|
|
But if we mention the name of the file explicitly then –prefix
and –suffix
does not work.
|
|
How to find the name of the temporary file?
mktemp
and tempfile
are good to create temporary files inside the /tmp/
as well as inside the directory of your wish but it is not returning the name of the file. If we want to use this comment in the bash script then it should be having the capability to return the file name. And yeah, It can return back the file name after creation. Check the below code,
|
|
Conclusion
We used tmpfile
and mktemp
to create temporary files, customize it, store the file name in a variable so we could use it in subsequent commands in the bash script, etc.
References
[1] https://man7.org/linux/man-pages/man3/tmpfile.3.html
[2] https://man7.org/linux/man-pages/man3/mktemp.3.html
[3] https://opensource.com/article/22/6/make-temporary-file-bash