在以其绝对功能和灵活性而闻名的 linux 操作系统的动态世界中,有大量的命令集合可以让你完全掌握系统。
深入理解和掌握linux中“mkdir命令”的使用是linux之旅中不可或缺的一部分。
mkdir 命令的语法
mkdir命令是“make directory”的缩写,是unix/linux命令行界面的重要组成部分。它使用户能够在其文件系统中创建新目录或文件夹,是新手用户和经验丰富的 linux 管理员不可或缺的工具。
在最简单的形式中,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 和 dir3 是要创建的目录的名称。
dir2此命令将在当前位置创建这三个目录。
使用 mkdir 创建具有特定权限的目录
使用 --m 或 ---mode 选项,可以在创建目录时指定目录的权限:
mkdir -m 755 new_directory
在这里,new_directory的权限设置为“755”,这意味着所有者可以读取、写入和执行,而组和其他人只能读取和执行。
使用 mkdir 创建嵌套目录
-p 或 ---parents 选项允许根据需要创建父目录。
例如:
mkdir -p dir1/dir2/dir3
此命令检查 dir1 和 dir2 是否存在,如果它们不存在,则创建它们。然后,它在 dir2 中创建 dir3,该 dir3 内部dir2dir1.
将详细输出与 mkdir 一起使用
-v 或 ---verbose 选项使 mkdir 为其创建的每个目录打印一条消息,这对于故障排除或确认很有用:
mkdir -v new_directory
此命令将创建new_directory,然后打印一条指示其创建的消息。
创建名称中包含空格的目录
有时,我们想创建一个名称中带有空格的目录。
我们可以通过将目录名称括在引号中来实现这一点:
mkdir "new directory"
使用此命令,将创建一个名为 new 目录的新目录(在“new directory”和“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
此命令创建new_directory并将其组 id 设置为 group_name.
创建目录并使其成为临时目录
t 选项允许将目录设置为临时目录,linux 处理该目录的方式与标准目录略有不同:
mkdir -m t new_directory
此命令将创建new_directory作为临时目录。
在临时目录中创建的文件通常会在一段时间内无法访问时被删除。
创建多级嵌套目录
-p 选项可用于通过单个命令创建多级嵌套目录:
mkdir -p level1/level2/level3/level4
此命令将创建四个级别的目录。
level1 是顶级目录,level4 是底层目录,level2 和 level1 是中间目录。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 命令不会返回错误,而是提供详细输出。
创建没有详细模式的目录
如果要以静默方式创建一个目录,而不进行任何详细输出,只需使用 mkdir 命令而不使用 -v 选项:
mkdir quiet_directory
此命令创建一个名为 quiet_directory 的目录,而不显示任何消息。
将大括号扩展与 mkdir 命令结合使用
大括号扩展是 linux 中的一项强大功能,可以与 mkdir 命令一起使用来创建一系列目录:
mkdir dir{1..5}
此命令将创建五个目录,分别名为 dir1、dir2、dir3dir4 和 dir5 dir1dir2.
创建目录和设置粘性位
粘滞位是保护目录中文件的权限位。
如果已设置,则只能由文件的所有者或 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.
结论
在 linux 中对 mkdir 命令的广泛探索阐明了它的强大功能和多功能性。
无论是创建单个目录、嵌套多个目录还是调整权限和属性,mkdir 命令仍然是每个 linux 用户工具包中不可或缺的工具。
了解这些示例不仅可以提高管理目录的熟练程度,还可以增强整体命令行灵活性。继续利用 mkdir 命令来简化和增强 linux 体验。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。