Linux mkdir、rmdir 命令详解——目录的创建与删除(新手零踩坑)

前言

在Linux操作中,目录是文件的"容器",想要管理文件,首先要学会创建和删除目录。mkdir(创建目录)和rmdir(删除目录)是最基础的目录操作命令,用法简单但有细节,尤其是rmdir的"局限性",新手很容易踩坑。本文全程实操,讲透两个命令的所有高频用法、参数和避坑点,看完就能直接上手。


一、mkdir 命令:创建目录(核心命令)

1. 命令作用

mkdir 是 "make directory" 的缩写,核心功能就是创建新的目录(文件夹),支持创建单层目录、多层嵌套目录,还能一次性创建多个目录,满足日常所有目录创建需求。

2. 基本语法

格式:mkdir [选项] 目录名/目录路径

说明:\[\] 中的选项可选,目录名/路径是必填项,区分大小写,可通过Tab键自动补全。

3. 高频用法与参数(新手必记)

新手重点掌握2个用法+1个核心参数,就能应对99%的场景。

① 无参数:创建单层目录(最基础)

【示例】在当前目录下,创建一个名为"test"的目录:

mkdir test

【验证】输入 ls,就能看到当前目录下多了"test"文件夹,创建成功。

② 核心参数 -p:递归创建多层嵌套目录(最常用)

新手最容易犯的错:直接创建多层目录(如a/b/c),不加分-p,会提示"没有那个文件或目录"。因为Linux默认不会自动创建父目录,而-p参数可以解决这个问题,一次性创建所有嵌套目录。

【示例1】创建多层嵌套目录a/b/c:

mkdir -p a/b/c

【效果】会自动创建a目录,再在a里面创建b目录,最后在b里面创建c目录,无需手动逐层创建。

【示例2】创建多个多层目录:

mkdir -p dir1/sub1 dir2/sub2

【效果】同时创建dir1/sub1和dir2/sub2两个多层目录,高效便捷。

③ 一次性创建多个同级目录

【示例】在当前目录下,同时创建dir1、dir2、dir3三个同级目录:

mkdir dir1 dir2 dir3

【提示】多个目录名之间用空格分隔,适合需要创建多个同级目录的场景(如分类存放不同文件)。

4. 新手避坑点

  1. 目录名不能包含特殊字符(如/、*、?、"),否则会创建失败;

  2. 若当前目录下已存在同名目录,再用mkdir创建,会提示"文件已存在",需更换目录名或删除原有目录;

  3. 创建多层目录时,必须加-p参数,否则报错(新手必记)。


二、rmdir 命令:删除空目录(注意局限性)

1. 命令作用

rmdir 是 "remove directory" 的缩写,核心功能是删除目录,但有一个关键限制:只能删除空目录。如果目录里有文件或子目录,rmdir无法删除,这是新手最容易踩坑的点。

2. 基本语法

格式:rmdir [选项] 目录名/目录路径

3. 高频用法与参数

① 无参数:删除单个空目录

【示例】删除当前目录下的空目录"test":

rmdir test

【注意】如果test目录里有文件或子目录,会提示"目录非空",删除失败。

② 参数 -p:递归删除多层空目录

和mkdir -p对应,rmdir -p可以一次性删除多层嵌套的空目录,前提是所有层级的目录都是空的。

【示例】删除多层空目录a/b/c(a、b、c均为空):

rmdir -p a/b/c

【效果】先删除最内层的c目录,再删除b目录,最后删除a目录,一次性完成。

4. 新手避坑点(重点!)

  1. rmdir 只能删除空目录,非空目录无法删除,此时需要用rm -r命令(后续博客会详细讲解);

  2. 不要用rmdir删除系统默认目录(如/home、/etc),会导致系统异常;

  3. 递归删除(-p)时,只要有一个层级的目录非空,整个删除操作就会失败,需先清空目录内容。


三、实操练习(新手必做)

跟着以下步骤练习,5分钟掌握两个命令:

  1. 输入 mkdir test1,创建单层目录;

  2. 输入 mkdir -p test2/sub1/sub2,创建多层目录;

  3. 输入 rmdir test1,删除空目录test1;

  4. 输入**rmdir -p test2/sub1/sub2**,删除多层空目录;

  5. 尝试输入 mkdir test3 ,再输入 touch test3/1.txt (创建文件),最后输入**rmdir test3**,观察报错(目录非空)。


四、总结(30秒记住)

  1. mkdir:创建目录,单层直接用,多层加-p;

  2. rmdir:删除目录,只能删空的,多层空目录加-p;

  3. 核心避坑:rmdir删不了非空目录,非空目录用rm -r(后续讲解)。

相关推荐
M78佐菲3 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
Brilliantwxx3 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做4 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
richdata4 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667965 小时前
【无标题】
运维·服务器·网络
一池秋_5 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇6 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
上海云盾-小余7 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠7 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件7 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d