请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

本教程主要讲解如何使用mktemp命令创建指定大小的临时文件。

我们已经知道如何在Linux中创建特定大小的文件。在许多情况下,创建具有指定大小的文件是很有帮助的。例如,在部署新文件服务器之后,您可能需要检查文件的上传限制、最大上传大小和下载速度等。在这种情况下,可以创建特定大小的文件并在文件服务器上测试它们。还有一个名为mktemp的专用命令行工具可用来创建临时文件和目录。mktemp命令安全地创建一个临时文件或目录并打印其名称。所有文件和目录将保存在系统的临时目录中,比如/tmp,所以你不需要手动清理它们。重新启动系统后,临时文件将消失。

mkdir创建目录的权限(使用mktemp命令创建随机名称的目录和指定大小的文件)(1)

使用mktemp命令创建随机名称的目录和指定大小的文件

2. mktemp命令使用教程及其示例

mktemp是GNU coreutils包的一部分。所以不需要安装。现在我们来看一些实际的例子。

创建一个新的临时文件,只需运行:

mktemp

您将看到如下输出:

/tmp/tmp.U0C3cgGFpk

mkdir创建目录的权限(使用mktemp命令创建随机名称的目录和指定大小的文件)(2)

mktemp命令使用教程及其示例

正如您在输出中看到的,一个随机名为tmp.U0C3cgGFpk的新临时文件。它是在/tmp目录中创建的。这个文件只是一个空文件。

还可以创建具有指定后缀的临时文件。下面的命令将用创建一个带.txt后缀的临时文件。

mktemp--suffix".txt"

/tmp/tmp.sux7uKNgIA.txt

如果要创建临时目录,请使用-d选项。

mktemp-d

这将在/tmp文件夹中创建一个随机的空目录。

/tmp/tmp.PE7tDnm4uN

所有文件都将使用u rw权限创建,目录使用u rwx,减去umask限制。换句话说,生成的文件对当前用户具有读写权限,但对组或其他用户没有权限。目录对当前用户具有读、写和可执行权限,但对组或其他用户没有权限。

您可以使用ls命令验证文件权限:

ls-al/tmp/tmp.U0C3cgGFpk

-rw------- 1 sk sk 0 May 14 13:20 /tmp/tmp.U0C3cgGFpk

使用ls命令验证目录权限:

ls-ld/tmp/tmp.PE7tDnm4uN

drwx------ 2 sk sk 4096 May 14 13:25 /tmp/tmp.PE7tDnm4uN

3. 使用mktemp命令创建具有自定义名称的临时文件或目录

mkdir创建目录的权限(使用mktemp命令创建随机名称的目录和指定大小的文件)(3)

使用mktemp命令创建具有自定义名称的临时文件或目录

如前所述,所有文件和目录都是用随机文件名创建的。我们还可以创建一个具有自定义名称的临时文件或目录。要做到这一点,只需在文件名末尾添加至少三个连续的'x,如下所示。

mktempostechnixXXX

ostechnixq70

类似地,要创建目录,只需运行:

mktemp-dostechnixXXX

ostechnixcBO

请注意,如果选择自定义名称,将在当前工作目录中创建文件或目录,而不是/tmp位置。在这种情况下,您需要手动清理它们。

另外,正如您可能注意到的,文件名中的x被替换为随机字符。但是,您可以添加您选择的任何后缀。

例如,我想在文件名的末尾添加“blog”。因此,我的命令是:

mktempostechnixXXX--suffix=blog

ostechnixZuZblog

现在我们在文件名的末尾添加了后缀“blog”。

如果您不想创建任何文件或目录,您可以像下面这样简单地执行一次测试。

mktemp-u

/tmp/tmp.oK4N4U6rDG

如果想要更多帮助,请查看相关命令的帮助:

mktemp--help

4. 总结

本文主要讲解如何使用mktemp命令创建临时文件和目录您可能想知道为什么我们需要mktemp,而我们可以使用touch filename命令轻松创建空文件。mktemp命令主要用于创建具有随机名称的临时文件或目录。所以,我们不需要费心去定义它们的名字。因为mktemp将名称随机化,所以不会有任何名称冲突。而且,mktemp使用权限600(rw)安全地创建文件,使用权限700(rwx)安全地创建目录,因此其他用户无法访问它。有关更多细节,请查看man手册页。

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/cyml/1702.html

,