mktemp命令

时间:2020-03-21 11:47:24  来源:igfitidea点击:

我们已经知道如何在Linux中创建一定大小的文件。

创建给定大小的文件在许多情况下都会很有帮助。
例如,在部署新的文件服务器之后,我们可能要检查上传限制,最大上传大小和文件的下载速度等。
在这种情况下,我们可以创建特定大小的文件并在文件服务器上对其进行测试。
还有一个名为“ mktemp”的专用命令行工具可用于创建临时文件和目录。
mktemp命令安全地创建一个临时文件或者目录,并打印其名称。
所有文件和目录将保存在系统的临时目录中,例如:/tmp。
因此,我们无需手动清理它们。
重新启动系统后,临时文件将消失。

mktemp命令教程及示例

Mktemp是GNU coreutils软件包的一部分。
因此,请勿打扰安装。
现在,我们将看到一些实际示例。

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

$mktemp

我们将看到类似以下的输出:

/tmp/tmp.U0C3cgGFpk

如我们在输出中看到的,在/tmp目录中创建了一个新的临时文件,其随机名称为“ tmp.U0C3cgGFpk”。
该文件只是一个空文件。

我们还可以创建带有指定后缀的临时文件。
以下命令将创建一个扩展名为“ .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 Jan 14 13:20 /tmp/tmp.U0C3cgGFpk

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

$ls -ld /tmp/tmp.PE7tDnm4uN
drwx------ 2 sk sk 4096 Jan 14 13:25 /tmp/tmp.PE7tDnm4uN

建议阅读:

  • 如何在Linux中从文本文件创建目录

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

正如我已经说过的,所有文件和目录都是使用随机文件名创建的。
我们还可以使用自定义名称创建一个临时文件或者目录。
为此,只需在文件名的末尾添加至少三个连续的'X',如下所示。

$mktemp theitroadXXX
theitroadq70

同样,要创建目录,只需运行:

$mktemp -d theitroadXXX
theitroadcBO

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

另外,我们可能会注意到,文件名中的X替换为随机字符。
但是,我们可以添加我们选择的任何后缀。

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

$mktemp theitroadXXX --suffix=blog
theitroadZuZblog

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

如果我们不想创建任何文件或者目录,则只需执行如下所示的试运行即可。

$mktemp -u
/tmp/tmp.oK4N4U6rDG

要获取帮助,请运行:

$mktemp --help

为什么我们实际上需要mktemp?

我们可能想知道为什么我们需要“ mktemp”,而我们可以使用“ touch filename”命令轻松创建空文件。
mktemp命令主要用于创建具有随机名称的临时文件/目录。
因此,我们无需费心找出名称。
由于mktemp将名称随机化,因此不会发生任何名称冲突。
另外,mktemp安全创建权限为600(rw)的文件和目录权限为700(rwx)的目录,因此其他用户无法访问它。
有关更多详细信息,请查看手册页。

$man mktemp