软件测试|Linux 基础教程:创建和删除目录_递归

简介

在 Linux 系统中,创建和删除目录是非常常见的操作。目录是用于组织文件和其他目录的一种结构,它们是组织文件系统的重要组成部分。本文将介绍如何在 Linux 系统中创建和删除目录。

创建目录

在 Linux 中,可以使用 mkdir 命令来创建一个新的目录。mkdir 是 Make Directory(创建目录)的缩写。

基本语法 创建目录的基本语法如下:

mkdir [-mp] directory_name

其中,directory_name 是要创建的目录的名称。

  • -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。
  • -p 选项递归创建所有目录,以创建/home/test/demo为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home/home/test 以及 /home/test/demo

使用示例

  1. 建立目录
mkdir salah
ls
demo  Desktop  Documents  Downloads  Music  Pictures  Public  salah  snap  Templates  Videos

我们建立一个名为 salah 的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。

  1. 使用 -p 选项递归建立目录
muller@ubuntu:~$ mkdir novels/uk/harrypotter
mkdir: cannot create directory ‘novels/uk/harrypotter’: No such file or directory
muller@ubuntu:~$ mkdir -p novels/uk/harrypotter
muller@ubuntu:~$ ls
demo  Desktop  Documents  Downloads  Music  novels  Pictures  Public  salah  snap  Templates  Videos
muller@ubuntu:~$ ls novels/
uk
muller@ubuntu:~$ ls novels/uk
harrypotter

当我们没有加-p参数时,创建递归目录会报错,加上之后,即可成功创建目录。

  1. 使用 -m 选项自定义目录权限
muller@ubuntu:~$ mkdir -m 711 demo2
muller@ubuntu:~$ mkdir -m 777 demo3
muller@ubuntu:~$ ls -l
total 56
drwxrwxr-x 2 muller muller 4096 Jul 21 15:44 demo
drwx--x--x 2 muller muller 4096 Jul 21 17:27 demo2
drwxrwxrwx 2 muller muller 4096 Jul 21 17:27 demo3

仔细看上面的权限部分,也就是 ls 命令输出的第一列数据,demo目录由于不是使用 -m 选项设定访问权限,因此这个目录采用的是默认权限(这里的默认权限值是 755,后续再详细介绍默认权限)。

而在创建 demo2 时,使用了 -m 选项,通过设定 711 权限值来给予新的目录 drwx--x--x 的权限,有关权限值的具体含义后续进行介绍。

删除目录

在 Linux 中,可以使用rmdirrm 命令来删除目录。但需要注意,删除目录时必须确保目录为空,否则 rmdir 命令会报错。如果目录不为空,您需要使用 rm 命令以递归方式删除目录和其内容。

rmdir 命令基本语法

rmdir directory_name

其中,directory_name 是您要删除的空目录的名称。

示例

  1. 删除一个空目录:
muller@ubuntu:~$ rmdir demo2
muller@ubuntu:~$ ls
demo  demo3  Desktop  Documents  Downloads  Music  novels  Pictures  Public  salah  snap  Templates  Videos

命令后面加目录名称即可,但命令执行成功与否,取决于要删除目录是否是空目录,因为 rmdir 命令只能删除空目录。

  1. 递归删除空目录:
muller@ubuntu:~$ rmdir -p novels/uk/harrypotter
muller@ubuntu:~$ ls
demo  demo3  Desktop  Documents  Downloads  Music  Pictures  Public  salah  snap  Templates  Videos
muller@ubuntu:~$

注意,此方式先删除最低一层地目录(这里先删除 harrypotter),然后逐层删除上级目录,删除时也需要保证各级目录是空目录。

rm命令基本语法

rm [options] file or directory

options可选参数

  • -f:强制删除(force),和-i选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
  • -i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
  • -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。

注:rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。

使用示例

  1. rm删除目录,如下:
muller@ubuntu:~$ rm -r demo3
muller@ubuntu:~$ ls
demo  Desktop  Documents  Downloads  Music  Pictures  Public  salah  snap  Templates  Videos
  1. rm递归删除目录,如下:
[muller@ubuntu ~]# mkdir -p /test/lm/movie/jp
#递归建立测试目录
[muller@ubuntu ~]# rm /test
rm:无法删除"/test/": 是一个目录
#如果不加"-r"选项,则会报错
[root@localhost ~]# rm -r /test
rm:是否进入目录"/test"?y
rm:是否进入目录"/test/lm/movie"?y
rm:是否删除目录"/test/lm/movie/jp"?y
rm:是否删除目录"/test/lm/movie"?y
rm:是否删除目录"/test/lm"?y
rm:是否删除目录"/test"?y
#会分别询问是否进入子目录、是否删除子目录
  1. 强制删除
[root@localhost ~]# mkdir -p /test/lm/movie/jp
#重新建立测试目录
[root@localhost ~]# rm -rf /test
#强制删除

总结

在 Linux 系统中,创建和删除目录是常见的操作。通过 mkdir 命令可以创建目录,而 rmdirrm 命令可以删除目录。请务必小心操作,确保您的目录结构和数据安全。希望本文能帮助您了解如何在 Linux 系统中创建和删除目录。