Linux 中的 mkdir 命令及其示例

Linux 中的 mkdir 命令用于创建目录。这是每个 Linux 用户都应该熟悉的基本命令,因为它在文件和目录管理中起着至关重要的作用。mkdir 命令的基本语法允许您一次创建一个或多个目录、设置权限,甚至创建父目录(如果它们尚不存在)。了解 mkdir 的各种选项和语法可以显著提高您在命令行中管理文件和目录的效率。

本指南将解释 mkdir 命令的语法,探讨其选项,并提供如何在 Linux 系统上在不同场景中使用 mkdir 的实际示例。

mkdir 命令的语法

最简单的 mkdir 命令遵循以下语法:

mkdir [OPTION]... DIRECTORY...
  • mkdir 是指示系统创建新目录的命令。
  • [OPTION] 是一个可选参数,用于修改命令的行为。
  • DIRECTORY 是您要创建的目录的名称。

mkdir 命令可用的选项

您可以使用 mkdir 命令的多个选项来定制其功能:

  • -m, –mode=MODE:设置新目录的文件模式(权限),通常表示为数字字符串,如“755”或“644”。
  • -p, –parents:如果指定的目录已经存在,此选项可确保不会报告错误。它还允许根据需要创建父目录。
  • -v,–verbose:提供详细输出,解释 mkdir 命令正在做什么。
  • –help:显示帮助信息并退出。
  • –version:输出版本信息并退出。

mkdir 命令示例

使用 mkdir 创建简单目录

mkdir 命令最简单、最常见的用法是创建一个新目录:

mkdir new_directory

在此命令中,new_directory 是您正在创建的目录的名称。执行此命令后,将在您当前位置创建一个名为 new_directory 的新目录。

使用 mkdir 创建多个目录

mkdir 命令还可以同时创建多个目录。操作方法如下:

mkdir dir1 dir2 dir3

此命令中,dir1、dir2、dir3 是要创建的目录的名称。此命令将在您当前位置创建这三个目录。

使用 mkdir 创建具有特定权限的目录

使用 -m 或 –mode 选项,您可以指定目录在创建时的权限:

mkdir -m 755 new_directory

这里,new_directory 的创建权限设置为“755”,这意味着所有者可以读取、写入和执行,而组和其他人只能读取和执行。

使用 mkdir 创建嵌套目录

-p 或 –parents 选项允许根据需要创建父目录。例如:

mkdir -p dir1/dir2/dir3

此命令检查 dir1 和 dir2 是否存在,如果不存在,则创建它们。然后,它在 dir2 中创建 dir3,而 dir2 又位于 dir1 中。

使用 mkdir 的详细输出

-v 或 –verbose 选项使 mkdir 为其创建的每个目录打印一条消息,这对于故障排除或确认很有用:

mkdir -v new_directory

此命令将创建 new_directory,然后打印一条消息表明其创建。

创建名称中带有空格的目录

有时,我们想创建一个名称中带有空格的目录。我们可以通过将目录名称括在引号中来实现这一点:

mkdir "new directory"

使用此命令,将创建一个名为 new directory(“new”和“directory”之间有一个空格)的新目录。

检查 mkdir 的版本

您可以检查系统上当前安装的 mkdir 命令的版本。在出现兼容性问题或进行故障排除时,这可能会有所帮助。要检查版本,您可以使用:

mkdir --version

此命令将显示系统上当前使用的 mkdir 命令的版本信息。

显示 mkdir 的帮助

如果您需要使用 mkdir 命令的帮助或想要快速检查其选项,请使用 –help 选项:

mkdir --help

该命令将输出一条帮助信息,显示mkdir命令的用法和可用选项。

从文本文件创建目录

假设您有一个文本文件,其中包含要创建的目录名称列表。您可以使用 xargs 命令和 mkdir 来执行此操作:

xargs mkdir < dir_list.txt

在此命令中,dir_list.txt 是一个包含目录名称列表的文本文件。该命令将读取此文件并使用这些名称创建目录。

创建具有完整路径的目录

您可以指定要创建目录的完整路径。当您想在当前工作目录以外的位置创建目录时,这尤其有用:

mkdir /path/to/new_directory

这里,new_directory 在指定路径 /path/to/ 中创建。

创建隐藏目录

在 Linux 中,任何以点 (.) 开头的文件或目录名称都被视为隐藏。要创建隐藏目录,请使用:

mkdir .hidden_directory

此命令将创建一个名为 .hidden_​​directory 的隐藏目录。您可以使用 ls -a 查看此目录。

防止覆盖现有目录

-p 或 –parents 选项也可用于防止 mkdir 命令覆盖现有目录:

mkdir -p existing_directory

使用此命令,如果existing_directory已经存在,它将不会被覆盖,从而防止任何潜在的数据丢失。

创建目录并设置组ID

g 选项允许您为新目录设置组 ID:

mkdir -m g=group_name new_directory

此命令创建新目录并将其组 ID 设置为 group_name。

创建目录并将其设为临时目录

t 选项允许您将目录设为临时目录,Linux 对待临时目录的方式与标准目录略有不同:

mkdir -m t new_directory

此命令将创建 new_directory 作为临时目录。临时目录中创建的文件通常在一段时间内未访问时被删除。

创建多层嵌套目录

-p 选项可用于通过单个命令创建多层嵌套目录:

mkdir -p Level1/Level2/Level3/Level4

该命令会创建四级目录,Level1为顶层目录,Level4为底层目录,Level2和Level3为中间目录。

为用户、组和其他用户创建具有不同权限的目录

-m 选项允许您为用户、组和其他人指定不同的权限:

mkdir -m u=rwx,g=rx,o= new_directory

这里,new_directory 被创建,对用户 (u) 具有读、写和执行权限,对组 (g) 具有读取和执行权限,而对其他 (o) 没有权限。

以详细模式创建目录并忽略错误

-v 选项可以与 -p 结合使用以忽略错误并提供详细输出:

mkdir -pv existing_directory

在此命令中,如果existing_directory已经存在,mkdir命令将不会返回错误,而是提供详细的输出。

不使用详细模式创建目录

如果您想要静默创建目录而不显示任何详细输出,请使用不带 -v 选项的 mkdir 命令:

mkdir quiet_directory

此命令创建一个名为 quiet_directory 的目录,不显示任何消息。

使用 mkdir 命令进行括号扩展

括号扩展是 Linux 中的一个强大功能,可以与 mkdir 命令一起使用来创建一系列目录:

mkdir dir{1..5}

此命令将创建五个目录,分别名为 dir1、dir2、dir3、dir4 和 dir5。

创建目录并设置粘滞位

粘性位是保护目录中文件的权限位。如果设置了该位,则只有文件所有者或 root 用户才能删除或重命名文件。以下是在创建目录时设置粘性位的方法:

mkdir -m +t new_directory

使用此命令,将创建设置了粘滞位的 new_directory。

创建目录并设置 Setuid 和 Setgid 位

创建目录时可以设置 setuid 和 setgid 位,这会影响在其中创建的文件和目录的所有权。-m 选项允许您设置这些位:

mkdir -m u+s,g+s new_directory

此命令将创建设置了 setuid 和 setgid 位的 new_directory。

使用八进制模式创建具有不同权限的目录

虽然我们已经讨论了设置权限的符号模式,但 mkdir 命令也支持八进制模式:

mkdir -m 700 private_directory

这里创建了 private_directory,其权限设置为“700”(用户具有读、写和执行权限,而组和其他用户则无权限)。

创建目录并使其不可变

使目录不可变可以防止它被删除,即使是 root 用户也不行。首先,我们创建一个目录,然后使用以下命令使其不可变: chattr 命令:

mkdir new_directory
sudo chattr +i new_directory

这将创建一个 new_directory,然后使其不可变。

创建目录并设置默认 ACL

如果您的文件系统支持访问控制列表 (ACL),您可以在创建目录时设置默认 ACL:

mkdir new_directory
setfacl -d -m g::rwx new_directory

在这些命令中,首先创建 new_directory,然后 setfacl 命令将目录的默认 ACL 设置为组的 rwx。

创建目录并设置 SELinux 上下文

如果您在启用了 SELinux 的系统上工作,则可以在创建目录时设置 SELinux 上下文:

mkdir new_directory
chcon -t httpd_sys_content_t new_directory

这里首先创建了 new_directory。然后,chcon 命令将 new_directory 的 SELinux 上下文更改为 httpd_sys_content_t。

结论

掌握 mkdir 命令及其各种选项可以大大提高您在 Linux 系统上管理目录的能力。通过了解其语法并尝试提供的示例,您可以简化工作流程并提高命令行效率。无论您是创建单个目录、多个目录还是设置特定权限,mkdir 都是任何 Linux 用户的必备工具。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论