小小白祈祷中...

mkdir 是 Linux 和类 Unix 操作系统中的一个基本命令,用于创建目录。它是 "make directory" 的缩写,可以按照指定的路径创建一个或多个目录,同时支持设置目录的权限。

以下是对 mkdir 命令的详细介绍,包括基本用法、常用选项和示例。


基本语法

1
mkdir [选项] 目录名称
  • 目录名称:指定要创建的目录路径,可以是相对路径或绝对路径。
  • 选项:用于扩展功能,比如递归创建、设置权限等。

常用选项

选项 功能
-p 递归创建多级目录。如果父目录不存在,会一并创建。
-m MODE 设置新目录的权限(权限用八进制表示)。
-v 显示创建目录的详细信息。

详解选项

递归创建目录(-p

  • 如果要创建的目录路径中包含不存在的父目录,-p 选项会自动创建所有必要的父目录。
  • 示例:
    1
    mkdir -p /path/to/parent/child
    • 如果 /path/to/parent 不存在,mkdir -p 会自动创建 parentchild 目录。

设置目录权限(-m

  • 使用 -m 选项可以直接指定新建目录的权限。
  • 权限使用八进制数指定(例如 755, 700)。
  • 示例:
    1
    mkdir -m 755 my_folder
    • 创建 my_folder 并设置权限为 755(拥有者可读写执行,组和其他用户可读执行)。

显示详细信息(-v

  • 使用 -v 选项可以显示每个创建的目录对应的操作信息。
  • 示例:
    1
    mkdir -v new_folder
    输出:
    1
    mkdir: created directory 'new_folder'

示例

创建单个目录

1
mkdir my_folder
  • 在当前目录下创建名为 my_folder 的目录。

递归创建多级目录

1
mkdir -p /home/user/projects/python/scripts
  • 如果路径 /home/user/projects/python 不存在,-p 选项会自动创建所有必要的父目录。

创建目录并设置权限

1
mkdir -m 700 secure_folder
  • 创建名为 secure_folder 的目录,并将权限设置为 700(仅拥有者可读写执行)。

创建多个目录

1
mkdir folder1 folder2 folder3
  • 一次创建 folder1folder2folder3 三个目录。

显示详细信息

1
mkdir -v project_folder

输出:

1
mkdir: created directory 'project_folder'

权限的说明

  • 默认情况下,mkdir 创建的目录权限由 umask 控制(用户文件创建模式掩码)。

    • 例如,如果 umask0022,默认目录权限为 777 - 022 = 755
    • 查看当前的 umask
      1
      umask
  • 通过 -m 选项可以覆盖默认的权限设置。


错误处理

  1. 目录已存在

    • 如果尝试创建的目录已存在,mkdir 会报错:
      1
      mkdir: cannot create directory 'my_folder': File exists
  2. 无权限创建目录

    • 如果没有权限在指定路径下创建目录,mkdir 会报错:
      1
      mkdir: cannot create directory '/restricted_folder': Permission denied
  3. 解决方法

    • 使用 -p 选项避免 "已存在" 的错误。
    • 确保在有权限的路径下执行,或者使用 sudo 提权:
      1
      sudo mkdir /restricted_folder

结合其他命令

  1. 递归创建并切换到新目录

    1
    mkdir -p /path/to/new_folder && cd /path/to/new_folder
  2. 创建目录后立即设置权限

    1
    mkdir new_folder && chmod 700 new_folder
  3. 配合 find 查看创建的目录

    1
    mkdir -p /tmp/test_folder && find /tmp -name test_folder

总结

  • mkdir 是一个功能简单但非常实用的命令,用于快速创建目录。
  • 通过选项 -p-m 可以递归创建目录并灵活设置权限。
  • 配合其他命令(如 cdchmod),可以提高操作效率,是日常文件管理中不可或缺的工具。