在 Linux 中创建临时文件


介绍

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

在 Linux 中创建临时文件

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

语法

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

$ mktemp [options] [template]

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

在 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的文件,其中qYhg9fmktemp生成的唯一后缀。

您还可以使用-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命令将其删除。

示例

以下是如何创建临时文件然后显示其内容的示例:

# Create the temporary file and store its path in a variable
temp_file=$(mktemp)
# Write some content to the file
echo "This is a temporary file" > $temp_file
# Display the contents of the file
cat $temp_file
# Remove the temporary file
rm $temp_file

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

输出

This is a temporary file

结论

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

更新于:2023年1月12日

6K+ 次查看

开启您的职业生涯

通过完成课程获得认证

开始学习
广告