坚韧的小草 發表於 2025-7-2 14:32:21

Linux 命令mkdir详细教程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">Linuxmkdir命令详细教程</a></li><ul class="second_class_ul"><li><a href="#_lab2_0_0">一、mkdir命令的基本功能</a></li><li><a href="#_lab2_0_1">二、mkdir命令的语法格式</a></li><li><a href="#_lab2_0_2">三、mkdir命令的使用场景与示例</a></li><li><a href="#_lab2_0_3">四、mkdir命令的权限与安全注意事项</a></li><li><a href="#_lab2_0_4">五、高级用法:结合其他命令使用</a></li><li><a href="#_lab2_0_5">六、常见错误与解决方案</a></li><li><a href="#_lab2_0_6">七、扩展:创建目录的其他方式</a></li><li><a href="#_lab2_0_7">八、总结</a></li></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>Linuxmkdir命令详细教程</h2>
<p class="maodian"><a name="_lab2_0_0"></a></p><h3>一、mkdir命令的基本功能</h3>
<ul><li><code>mkdir</code>(Make Directory)是 Linux 系统中用于创建新目录(文件夹)的基础命令。</li><li>它支持一次性创建单个或多个目录,以及递归创建多层目录结构,是文件系统操作中最常用的命令之一。</li><li>资料已经分类整理好:<code>https://pan.quark.cn/s/26d73f7dd8a7</code></li></ul>
<p class="maodian"><a name="_lab2_0_1"></a></p><h3>二、mkdir命令的语法格式</h3>
<div class="jb51code"><pre class="brush:bash;">mkdir [选项] 目录名 [目录名...]</pre></div>
<ul><li><strong>常用选项</strong>:
<ul><li><code>-p</code>(&ndash;parents):递归创建目录,若父目录不存在则自动创建。</li><li><code>-m</code>(&ndash;mode):创建目录时指定权限(如 <code>-m 755</code>)。</li><li><code>-v</code>(&ndash;verbose):显示创建目录的详细过程。</li><li><code>--help</code>:显示命令帮助信息。</li><li><code>--version</code>:显示命令版本信息。</li></ul></li></ul>
<p class="maodian"><a name="_lab2_0_2"></a></p><h3>三、mkdir命令的使用场景与示例</h3>
<p><strong>1. 创建单个目录</strong></p>
<div class="jb51code"><pre class="brush:bash;"># 示例1:在当前目录创建名为 "test" 的目录
mkdir test
# 示例2:在指定路径创建目录(需确保父目录存在)
mkdir /home/user/project/data</pre></div>
<ul><li><strong>输出</strong>:无提示,若目录已存在则报错 <code>mkdir: 无法创建目录&lsquo;test&rsquo;:文件已存在</code>。</li></ul>
<p>2. 递归创建多层目录(<code>-p</code> 选项)</p>
<div class="jb51code"><pre class="brush:bash;"># 场景:创建目录树 "project/src/main/java",若父目录不存在则自动创建
mkdir -p project/src/main/java
# 等价于依次执行:
# mkdir project
# mkdir project/src
# mkdir project/src/main
# mkdir project/src/main/java</pre></div>
<ul><li><strong>说明</strong>:<code>-p</code> 选项避免了手动逐层创建目录的繁琐,尤其适合构建项目结构。</li></ul>
<p>3. 创建目录时指定权限(<code>-m</code> 选项)</p>
<div class="jb51code"><pre class="brush:bash;"># 示例1:创建目录并设置权限为 755(所有者可读可写可执行,其他用户可读可执行)
mkdir -m 755 logs
# 示例2:创建目录并设置权限为 644(所有者可读可写,其他用户可读)
mkdir -m 644 documents</pre></div>
<ul><li><strong>权限说明</strong>:权限值用三位八进制数表示,每位对应 <code>所有者</code>、<code>组</code>、<code>其他用户</code> 的权限(<code>r=4</code>, <code>w=2</code>, <code>x=1</code>)。</li></ul>
<p><strong>4. 一次性创建多个目录</strong></p>
<div class="jb51code"><pre class="brush:bash;"># 示例:同时创建 "src"、"docs"、"test" 三个目录
mkdir src docs test
# 结合 -p 递归创建多个目录树
mkdir -p project/{src,docs,test}/img</pre></div>
<ul><li><strong>说明</strong>:使用大括号 <code>{}</code> 可简化多个目录的创建(需 shell 支持,如 bash)。</li></ul>
<p>5. 显示创建过程(<code>-v</code> 选项)</p>
<div class="jb51code"><pre class="brush:bash;">mkdir -v new_dir
# 输出:创建目录 "new_dir"</pre></div>
<ul><li><strong>场景</strong>:当批量创建目录时,通过 <code>-v</code> 确认操作是否成功。</li></ul>
<p class="maodian"><a name="_lab2_0_3"></a></p><h3>四、mkdir命令的权限与安全注意事项</h3>
<ol><li><p><strong>权限限制</strong>:</p>
<ul><li>只能在有权限的目录下创建新目录(通常需要对父目录有 <code>w</code> 权限)。</li><li>根目录(<code>/</code>)下创建目录需使用 <code>sudo</code>:<div class="jb51code"><pre class="brush:bash;">sudo mkdir /data/backup</pre></div></li></ul></li><li><p><strong>默认权限与 umask</strong>:</p>
<ul><li>新创建目录的默认权限由 <code>umask</code> 决定(默认 <code>022</code>),实际权限为 <code>777 - umask</code>。</li><li>示例:若 <code>umask</code> 为 <code>022</code>,则默认权限为 <code>755</code>(<code>rwxr-xr-x</code>)。</li><li>查看当前 <code>umask</code>:<code>umask</code>,临时修改:<code>umask 077</code>(修改后新目录权限为 <code>700</code>)。</li></ul></li><li><p><strong>避免同名文件冲突</strong>:</p>
<ul><li>若目录名与已有文件重名,<code>mkdir</code> 会报错,需先删除文件或重命名。</li></ul></li></ol>
<p class="maodian"><a name="_lab2_0_4"></a></p><h3>五、高级用法:结合其他命令使用</h3>
<ol><li><p>与 <code>touch</code> 配合创建项目文件结构:</p>
<div class="jb51code"><pre class="brush:bash;">mkdir -p project/{src,docs,test}
touch project/src/main.py project/test/test.py</pre></div></li><li><p><strong>在脚本中动态创建目录</strong>:</p>
<div class="jb51code"><pre class="brush:bash;"># 脚本示例:根据日期创建备份目录
DATE=$(date +%Y%m%d)
mkdir -p backups/$DATE
cp important.file backups/$DATE/</pre></div></li><li><p><strong>使用通配符创建批量目录</strong>:</p>
<div class="jb51code"><pre class="brush:bash;"># 创建以月份命名的目录:month_01, month_02, ..., month_12
mkdir month_{01..12}</pre></div></li></ol>
<p class="maodian"><a name="_lab2_0_5"></a></p><h3>六、常见错误与解决方案</h3>
<table><thead><tr><th>错误信息</th><th>原因</th><th>解决方案</th></tr></thead><tbody><tr><td><code>mkdir: 无法创建目录&lsquo;dir&rsquo;:权限不够</code></td><td>无父目录写入权限</td><td>使用 <code>sudo</code> 或切换到有权限的用户</td></tr><tr><td><code>mkdir: 无法创建目录&lsquo;dir&rsquo;:文件已存在</code></td><td>同名文件或目录已存在</td><td>重命名目录或删除已有文件</td></tr><tr><td><code>mkdir: 无法创建目录&lsquo;/path/to/dir&rsquo;:没有那个文件或目录</code></td><td>父目录不存在且未用 <code>-p</code></td><td>添加 <code>-p</code> 选项递归创建</td></tr></tbody></table>
<p class="maodian"><a name="_lab2_0_6"></a></p><h3>七、扩展:创建目录的其他方式</h3>
<ol><li><p>使用 <code>cp</code> 命令复制目录结构:</p>
<div class="jb51code"><pre class="brush:bash;">cp -r template_dir new_project# 复制目录及其内容</pre></div></li><li><p>使用 <code>tree</code> 命令查看目录结构(需先安装):</p>
<div class="jb51code"><pre class="brush:bash;">sudo apt install tree# Debian/Ubuntu
tree project# 查看 project 目录的层级结构</pre></div></li></ol>
<p class="maodian"><a name="_lab2_0_7"></a></p><h3>八、总结</h3>
<p><code>mkdir</code> 命令是 Linux 文件操作的基础,熟练掌握 <code>-p</code> 和 <code>-m</code> 选项可大幅提升目录管理效率。在实际使用中,建议:</p>
<ul><li>复杂目录结构优先使用 <code>-p</code> 递归创建;</li><li>重要目录通过 <code>-m</code> 显式设置权限;</li><li>结合通配符、脚本实现批量操作。<br />通过合理使用 <code>mkdir</code>,可高效构建项目目录、管理文件结构,避免因路径或权限问题导致的操作失误。</li></ul>
頁: [1]
查看完整版本: Linux 命令mkdir详细教程