在 Linux 中创建临时文件

linuxoperating systemopen source更新于 2026/1/26 12:07:17

简介

在 Linux 中,经常需要创建临时文件用于各种目的,例如存储处理过程中的中间数据或存储脚本的配置信息。临时文件通常创建在 /tmp 目录中,该目录是大多数 Linux 系统上存储临时文件的标准位置。

在 Linux 中创建临时文件

在 Linux 中有多种创建临时文件的方法。最常用的方法之一是使用 mktemp 命令,该命令会创建一个唯一的临时文件,并将文件名打印到控制台。

语法

要使用 mktemp 创建临时文件,请使用以下语法。

$ mktemp [options] [template]

template 参数是一个字符串,用于指定临时文件的名称和位置,并且可以包含 XXXXXX 作为 mktemp 将生成的唯一后缀的占位符。 options 参数是可选的,可用于指定各种选项,例如创建文件的目录或要设置的权限。

在 tmp 目录中创建随机临时文件

创建临时文件的最简单方法是运行不带任何参数的 mktemp 命令。如果您运行 mktemp 命令而不带任何参数,它将在默认临时文件目录(通常为 /tmp)中创建一个唯一的临时文件,默认模板为 tmp.XXXXXX

$ mktemp

这将创建一个名为 /tmp/tmp.qhgG9f

的文件。

您也可以使用 -q 选项来隐藏 mktemp 命令的输出,并将文件名存储在变量中。

$ temp_file=$(mktemp -q)
$ echo "Temporary file: $temp_file"

这将创建一个名为/tmp/tmp.qhgG9f 并将文件名存储在 temp_file 变量中。然后,echo 命令会将文件名打印到控制台。

指定目录和权限

要指定创建临时文件的其他目录,请使用 -d 选项。

$ mktemp -d /my/custom/dir/temp.XXXXXX

这将在 /my/custom/dir 目录中创建一个临时文件,其名称类似于 temp.qhgG9f。

$ mktemp -d /my/custom/dir/temp.XXXXXX

您还可以使用 -p 选项为文件名指定前缀,如下所示 -

$ mktemp -p /my/custom/dir mytemp.XXXXXX

这将创建一个名为 /my/custom/dir/mytemp.qhgG9f 的文件。

指定临时文件的模板

要在 /tmp 目录中创建具有唯一后缀和默认权限的临时文件,您可以使用以下命令 -

$ mktemp /tmp/temp.XXXXXX

这将创建一个名为 /tmp/temp.qYhg9f 的文件,其中 qYhg9f 是 mktemp 生成的唯一后缀。

您还可以使用 -t 选项指定包含 XXXXXX 占位符的模板,如下所示 -

$ mktemp -t temp.XXXXXX

这将在默认临时文件目录(通常为 /tmp)中创建一个名为 temp.qYhg9f 的文件。

创建多个临时文件

要一次创建多个临时文件,请使用 -u 选项,后跟包含多个 XXXXXX 占位符实例的模板。

$ mktemp -u /tmp/temp1.XXXXXX /tmp/temp2.​​XXXXXX

这将创建两个临时文件,名称分别为 /tmp/temp1.qhgG9f 和 /tmp/temp2.​​qhgG9f

检查临时文件的状态

创建临时文件后,您可能需要检查其状态以确保其已成功创建。您可以使用 stat 命令显示文件信息,包括其大小、权限和创建日期。

要使用 stat,请将文件名指定为参数,如下所示 -

$ stat /tmp/temp.qhOs8Q

这将显示文件信息,包括其大小、权限和创建日期。

删除临时文件

使用完临时文件后,最好将其删除以释放磁盘空间并防止混乱。您可以使用 rm 命令删除文件,如下所示:

$ rm /tmp/temp.qhOs8Q

这将永久删除该文件,因此请确保在删除之前不再需要该文件。

mktemp 输出和文件状态

以下是 mktemp 命令的实际操作示例 -

示例

$ mktemp /tmp/temp.XXXXXX
/tmp/temp.qhgG9f
$ stat /tmp/temp.qhgG9f
   File: /tmp/temp.qhgG9f
   Size: 0     Blocks: 0    IO Block: 4096    regular empty file
Device: 802h/2050d Inode: 1234   Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2022-12-16 11:07:35.000000000 -0500
Modify: 2022-12-16 11:07:35.000000000 -0500
Change: 2022-12-16 11:07:35.000000000 -0500
   Birth: -
$ rm /tmp/temp.qhgG9f

在此示例中,mktemp 命令在 /tmp 目录中创建一个具有唯一后缀的临时文件。

在 Bash 脚本中使用 mktemp

创建临时文件后,您可以像使用系统上的任何其他文件一样使用它。使用完毕后,可以使用 rm 命令将其删除。

示例

以下是创建临时文件并显示其内容的示例 -

# 创建临时文件并将其路径存储在变量中
temp_file=$(mktemp)
# 向文件写入一些内容
echo "This is a temporary file" > $temp_file
# 显示文件内容
cat $temp_file
# 删除临时文件
rm $temp_file

此代码将创建一个临时文件,向其中写入字符串"This is a temporary file",显示文件内容,然后删除该文件。此代码的输出为:-

输出

This is a temporary file

结论

在 Linux 中,可以使用 mktemp 命令轻松创建临时文件。通过指定模板和可选选项,您可以在所需位置创建一个具有所需权限的唯一临时文件。然后,您可以使用 stat 命令检查文件状态,并在不再需要时使用 rm 命令将其删除。


相关文章


有用资源