简介
在 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
。
使用示例
- 建立目录
mkdir salah
ls
demo Desktop Documents Downloads Music Pictures Public salah snap Templates Videos
我们建立一个名为 salah
的目录,通过 ls 命令可以查看到这个目录已经建立。注意,我们在建立目录的时候使用的是相对路径,所以这个目录被建立到当前目录下。
- 使用 -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
参数时,创建递归目录会报错,加上之后,即可成功创建目录。
- 使用 -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 中,可以使用rmdir
或 rm
命令来删除目录。但需要注意,删除目录时必须确保目录为空,否则 rmdir
命令会报错。如果目录不为空,您需要使用 rm
命令以递归方式删除目录和其内容。
rmdir 命令基本语法
rmdir directory_name
其中,directory_name
是您要删除的空目录的名称。
示例
- 删除一个空目录:
muller@ubuntu:~$ rmdir demo2
muller@ubuntu:~$ ls
demo demo3 Desktop Documents Downloads Music novels Pictures Public salah snap Templates Videos
命令后面加目录名称即可,但命令执行成功与否,取决于要删除目录是否是空目录,因为 rmdir 命令只能删除空目录。
- 递归删除空目录:
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
命令删除目录时,要慎之又慎。
使用示例
rm
删除目录,如下:
muller@ubuntu:~$ rm -r demo3
muller@ubuntu:~$ ls
demo Desktop Documents Downloads Music Pictures Public salah snap Templates Videos
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
#会分别询问是否进入子目录、是否删除子目录
- 强制删除
[root@localhost ~]# mkdir -p /test/lm/movie/jp
#重新建立测试目录
[root@localhost ~]# rm -rf /test
#强制删除
总结
在 Linux 系统中,创建和删除目录是常见的操作。通过 mkdir
命令可以创建目录,而 rmdir
和 rm
命令可以删除目录。请务必小心操作,确保您的目录结构和数据安全。希望本文能帮助您了解如何在 Linux 系统中创建和删除目录。