Linux常用命令学习笔记:mkdir

1. 命令概述

  • 命令名称mkdir(英文全拼:make directory)
  • 核心功能创建目录
  • 主要用途:在指定位置创建新目录
  • 特点:支持创建单个目录、多级目录、设置权限等

2. 语法格式

mkdir [选项] [目录名]

3. 常用选项

选项说明
-p递归创建目录,如果父目录不存在则一并创建
-m设置目录权限,类似 chmod
-v显示创建目录的详细信息
-Z设置SELinux安全上下文
--help显示帮助信息
--version显示版本信息

4. 基本操作

(1) 创建单个目录

# 创建单个目录
mkdir dirname

# 创建目录并显示详细信息
mkdir -v dirname

# 创建目录并设置权限
mkdir -m 755 dirname

# 创建目录并设置权限,显示详细信息
mkdir -m 755 -v dirname

(2) 创建多级目录

# 创建多级目录
mkdir -p dir1/dir2/dir3

# 创建多级目录并显示详细信息
mkdir -p -v dir1/dir2/dir3

# 创建多级目录并设置权限
mkdir -p -m 755 dir1/dir2/dir3

# 创建多级目录并设置权限,显示详细信息
mkdir -p -m 755 -v dir1/dir2/dir3

(3) 创建多个目录

# 创建多个目录
mkdir dir1 dir2 dir3

# 创建多个目录并显示详细信息
mkdir -v dir1 dir2 dir3

# 创建多个目录并设置权限
mkdir -m 755 dir1 dir2 dir3

# 创建多个目录并设置权限,显示详细信息
mkdir -m 755 -v dir1 dir2 dir3

(4) 创建带权限的目录

# 创建只读目录
mkdir -m 444 dirname

# 创建可读写目录
mkdir -m 666 dirname

# 创建可执行目录
mkdir -m 755 dirname

# 创建只读目录,显示详细信息
mkdir -m 444 -v dirname

# 创建可读写目录,显示详细信息
mkdir -m 666 -v dirname

# 创建可执行目录,显示详细信息
mkdir -m 755 -v dirname

5. 常用实例详解

(1) 基本目录创建示例

# 创建单个目录
mkdir test
# 输出:创建目录test

# 创建多个目录
mkdir dir1 dir2 dir3
# 输出:创建目录dir1、dir2、dir3

# 创建多级目录
mkdir -p project/src/main/java
# 输出:创建目录project/src/main/java

# 创建目录并显示详细信息
mkdir -v logs
# 输出:mkdir: 已创建目录 'logs'

# 创建目录并设置权限
mkdir -m 755 config
# 输出:创建目录config,权限为755

# 创建目录并设置权限,显示详细信息
mkdir -m 755 -v config
# 输出:mkdir: 已创建目录 'config'

(2) 多级目录创建示例

# 创建多级目录
mkdir -p /tmp/project/src/main/java
# 输出:创建目录/tmp/project/src/main/java

# 创建多级目录并显示详细信息
mkdir -p -v /tmp/project/src/main/java
# 输出:
# mkdir: 已创建目录 '/tmp/project'
# mkdir: 已创建目录 '/tmp/project/src'
# mkdir: 已创建目录 '/tmp/project/src/main'
# mkdir: 已创建目录 '/tmp/project/src/main/java'

# 创建多级目录并设置权限
mkdir -p -m 755 /tmp/project/src/main/java
# 输出:创建目录/tmp/project/src/main/java,权限为755

# 创建多级目录并设置权限,显示详细信息
mkdir -p -m 755 -v /tmp/project/src/main/java
# 输出:
# mkdir: 已创建目录 '/tmp/project'
# mkdir: 已创建目录 '/tmp/project/src'
# mkdir: 已创建目录 '/tmp/project/src/main'
# mkdir: 已创建目录 '/tmp/project/src/main/java'

(3) 权限设置示例

# 创建只读目录
mkdir -m 444 readonly
# 输出:创建目录readonly,权限为444

# 创建可读写目录
mkdir -m 666 readwrite
# 输出:创建目录readwrite,权限为666

# 创建可执行目录
mkdir -m 755 executable
# 输出:创建目录executable,权限为755

# 创建只读目录,显示详细信息
mkdir -m 444 -v readonly
# 输出:mkdir: 已创建目录 'readonly'

# 创建可读写目录,显示详细信息
mkdir -m 666 -v readwrite
# 输出:mkdir: 已创建目录 'readwrite'

# 创建可执行目录,显示详细信息
mkdir -m 755 -v executable
# 输出:mkdir: 已创建目录 'executable'

(4) 批量目录创建示例

# 创建多个目录
mkdir dir1 dir2 dir3
# 输出:创建目录dir1、dir2、dir3

# 创建多个目录并显示详细信息
mkdir -v dir1 dir2 dir3
# 输出:
# mkdir: 已创建目录 'dir1'
# mkdir: 已创建目录 'dir2'
# mkdir: 已创建目录 'dir3'

# 创建多个目录并设置权限
mkdir -m 755 dir1 dir2 dir3
# 输出:创建目录dir1、dir2、dir3,权限为755

# 创建多个目录并设置权限,显示详细信息
mkdir -m 755 -v dir1 dir2 dir3
# 输出:
# mkdir: 已创建目录 'dir1'
# mkdir: 已创建目录 'dir2'
# mkdir: 已创建目录 'dir3'

# 创建多个多级目录
mkdir -p project1/src project2/src project3/src
# 输出:创建目录project1/src、project2/src、project3/src

# 创建多个多级目录并显示详细信息
mkdir -p -v project1/src project2/src project3/src
# 输出:
# mkdir: 已创建目录 'project1'
# mkdir: 已创建目录 'project1/src'
# mkdir: 已创建目录 'project2'
# mkdir: 已创建目录 'project2/src'
# mkdir: 已创建目录 'project3'
# mkdir: 已创建目录 'project3/src'

6. 实际应用场景

场景一:项目目录结构创建

# 创建标准Java项目目录结构
mkdir -p project/src/main/java
mkdir -p project/src/main/resources
mkdir -p project/src/test/java
mkdir -p project/src/test/resources
mkdir -p project/target/classes
mkdir -p project/target/test-classes

# 创建Web项目目录结构
mkdir -p webapp/WEB-INF/classes
mkdir -p webapp/WEB-INF/lib
mkdir -p webapp/META-INF
mkdir -p webapp/css
mkdir -p webapp/js
mkdir -p webapp/images

# 创建Python项目目录结构
mkdir -p python_project/src
mkdir -p python_project/tests
mkdir -p python_project/docs
mkdir -p python_project/data
mkdir -p python_project/logs

场景二:日志和配置目录创建

# 创建日志目录
mkdir -p /var/log/myapp
mkdir -p /var/log/myapp/access
mkdir -p /var/log/myapp/error
mkdir -p /var/log/myapp/debug

# 创建配置目录
mkdir -p /etc/myapp
mkdir -p /etc/myapp/conf.d
mkdir -p /etc/myapp/ssl

# 创建数据目录
mkdir -p /var/lib/myapp
mkdir -p /var/lib/myapp/data
mkdir -p /var/lib/myapp/backup

# 创建临时目录
mkdir -p /tmp/myapp
mkdir -p /tmp/myapp/cache
mkdir -p /tmp/myapp/sessions

场景三:用户目录创建

# 创建用户主目录
mkdir -p /home/username
mkdir -p /home/username/Documents
mkdir -p /home/username/Downloads
mkdir -p /home/username/Pictures
mkdir -p /home/username/Music
mkdir -p /home/username/Videos

# 创建用户配置目录
mkdir -p /home/username/.config
mkdir -p /home/username/.cache
mkdir -p /home/username/.local
mkdir -p /home/username/.ssh

# 创建用户项目目录
mkdir -p /home/username/projects
mkdir -p /home/username/projects/python
mkdir -p /home/username/projects/java
mkdir -p /home/username/projects/web

场景四:系统目录创建

# 创建系统日志目录
mkdir -p /var/log/system
mkdir -p /var/log/system/audit
mkdir -p /var/log/system/security
mkdir -p /var/log/system/backup

# 创建系统配置目录
mkdir -p /etc/system
mkdir -p /etc/system/conf.d
mkdir -p /etc/system/scripts
mkdir -p /etc/system/cron.d

# 创建系统数据目录
mkdir -p /var/lib/system
mkdir -p /var/lib/system/data
mkdir -p /var/lib/system/backup
mkdir -p /var/lib/system/cache

# 创建系统临时目录
mkdir -p /tmp/system
mkdir -p /tmp/system/cache
mkdir -p /tmp/system/sessions
mkdir -p /tmp/system/temp

7. 与其他命令的区别

命令特点适用场景
mkdir创建目录创建新目录
rmdir删除空目录删除空目录
rm删除文件或目录删除文件或目录
touch创建空文件创建空文件
cp复制文件或目录复制文件或目录
mv移动文件或目录移动文件或目录

8. 注意事项

  1. 权限问题:需要对父目录有写权限才能创建目录
  2. 目录存在:如果目录已存在,会报错”File exists”
  3. 多级目录:使用 -p选项可以递归创建多级目录
  4. 权限设置:使用 -m选项可以设置目录权限
  5. 详细信息:使用 -v选项可以显示创建目录的详细信息

9. 常见问题解决

(1) 权限不足

# 错误:权限不足
mkdir /root/newdir  # 报错:Permission denied

# 正确:使用sudo
sudo mkdir /root/newdir

# 正确:切换到有权限的目录
mkdir /tmp/newdir

# 正确:修改父目录权限
sudo chmod +w /path/to/parent
mkdir /path/to/parent/newdir

# 正确:使用当前用户的主目录
mkdir ~/newdir

(2) 目录已存在

# 错误:目录已存在
mkdir existing_dir  # 报错:File exists

# 正确:检查目录是否存在
ls -d dirname

# 正确:使用不同的目录名
mkdir new_dir

# 正确:删除已存在的目录
rm -rf existing_dir
mkdir existing_dir

# 正确:忽略已存在的目录
mkdir -p existing_dir

(3) 父目录不存在

# 错误:父目录不存在
mkdir dir1/dir2/dir3  # 报错:No such file or directory

# 正确:使用-p选项递归创建
mkdir -p dir1/dir2/dir3

# 正确:先创建父目录
mkdir dir1
mkdir dir1/dir2
mkdir dir1/dir2/dir3

# 正确:检查父目录是否存在
ls -d dir1

# 正确:创建父目录
mkdir dir1
mkdir dir1/dir2/dir3

(4) 特殊字符处理

# 目录名包含空格
mkdir "dir with spaces"

# 目录名包含特殊字符
mkdir dir\ with\ spaces

# 目录名包含引号
mkdir 'dir with "quotes"'

# 目录名包含变量
mkdir "$HOME/newdir"

# 目录名包含命令替换
mkdir "$(date +%Y%m%d)"

核心要点总结

  • mkdir是创建目录的命令,支持创建单个目录、多级目录、设置权限等
  • 常用选项-p(递归创建目录)、-m(设置目录权限)、-v(显示详细信息)
  • 实际应用:项目目录结构创建、日志和配置目录创建、用户目录创建、系统目录创建
  • 注意事项:需要对父目录有写权限,目录已存在会报错,使用 -p选项可以递归创建多级目录

mkdir命令是Linux系统目录管理的基础工具,熟练掌握可以大大提高文件系统管理效率。


作 者:南烛
链 接:https://www.itnotes.top/archives/471
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇