linux每日命令(7):rmdir命令

rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。

一.命令格式

rmdir [参数] 目录

二.命令功能:

该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限。

三.命令参数:

参数 描述
-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v --verbose,显示指令执行过程

四. 命令示例

1.删除空目录dir31

命令:

rmdir dir31

输出:

hc@hc-virtual-machine:~$ tree test1/
test1/
├── dir1
│   ├── dir11
│   └── file1
└── dir2
│   └── dir21
└── dir3
    └── dir31

4 directories, 1 file
hc@hc-virtual-machine:~$ rmdir test1/dir1/file1
rmdir: 删除 'test1/dir1/file1' 失败: 不是目录
hc@hc-virtual-machine:~$ rmdir test1/dir3
rmdir: 删除 'test1/dir3' 失败: 目录非空
hc@hc-virtual-machine:~$ rmdir test1/dir3/dir31
hc@hc-virtual-machine:~$ tree test1/
test1/
├── dir1
│   ├── dir11
│   └── file1
└── dir2
│   └── dir21
└── dir3

说明:

rmdir 目录名 ,不能用来删除文件,也不能删除非空目录,只能用来删除单个空目录

2. “递归”删除空目录(此“递归”指“反向递归”,删除父级空目录)

命令:

    rmdir -p test1/dir2/dir21/

输出:

hc@hc-virtual-machine:~$ tree test1/
test1/
├── dir1
│   ├── dir11
│   └── file1
└── dir2
    └── dir21

4 directories, 1 file
hc@hc-virtual-machine:~$ rmdir -p test1/dir2/dir21/
rmdir: 删除目录 'test1' 失败: 目录非空
hc@hc-virtual-machine:~$ tree test1/
test1/
└── dir1
    ├── dir11
    └── file1

2 directories, 1 file

说明:
删除dir2目录下的dir21目录,如果删除后,dir21目录的父级目录为空目录,则删除其父级目录dir2,如果dir2的目录被删除后,test1目录为空目录,则接着删除,直到遇到父级目录不为空目录,则停止删除

rmdir -p 当该目录的子目录被删除后使其也成为空目录的话,则顺便一并删除该目录

3. 显示删除过程

命令:

rmdir -pv test1/dir1/dir11/

输出:

hc@hc-virtual-machine:~$ ls
PycharmProjects  snap  test1  公共的  模板  视频  图片  文档  下载  音乐  桌面
hc@hc-virtual-machine:~$ tree test1/
test1/
└── dir1
    └── dir11
hc@hc-virtual-machine:~$ rmdir -pv test1/dir1/dir11/
rmdir: 正在删除目录 'test1/dir1/dir11/'
rmdir: 正在删除目录 'test1/dir1'
rmdir: 正在删除目录 'test1'
hc@hc-virtual-machine:~$ ls
PycharmProjects  snap  公共的  模板  视频  图片  文档  下载  音乐  桌面

posted @ 2018-10-29 19:45  听风。  阅读(2083)  评论(0编辑  收藏  举报